Cannot perform subprocess.run commands

Hi everyone,

In my snap (coded in python), I try to perform some sudo commands but it didn’t work. Here is an example of a command that didn’t work:

command = "sudo netmgr -i country_code set:" + countryCode
subprocess.run([command])

And when I run the snap in my device it won’t work and I got this error:

Traceback (most recent call last): File “/snap/iotr-configuration/x17/bin/iotr-configuration”, line 11, in load_entry_point(‘iotr-configure==0.0.3’, ‘console_scripts’, ‘iotr-configuration’)() File “/snap/iotr-configuration/x17/lib/python3.5/site-packages/src/app.py”, line 53, in main configuration_program() File “/snap/iotr-configuration/x17/lib/python3.5/site-packages/src/app.py”, line 37, in configuration_program confNIC.set_nic_settings(“fd05:a40b:b47d:7340::4”, “1250”) File “/snap/iotr-configuration/x17/lib/python3.5/site-packages/src/configureNic.py”, line 16, in set_nic_settings subprocess.run([command]) File “/snap/iotr-configuration/x17/usr/lib/python3.5/subprocess.py”, line 693, in run with Popen(*popenargs, **kwargs) as process: File “/snap/iotr-configuration/x17/usr/lib/python3.5/subprocess.py”, line 947, in init restore_signals, start_new_session) File “/snap/iotr-configuration/x17/usr/lib/python3.5/subprocess.py”, line 1551, in _execute_child raise child_exception_type(errno_num, err_msg) FileNotFoundError: [Errno 2] No such file or directory: ‘sudo netmgr -i country_code set:1250’

This function exist because when I type it directly in the terminal, it works…

Can you help me on this issue ?

does it work if you do sudo -i or sudo -E ?

Edit: ignore that, didn’t notice this is inside a snap.

Yes indeed, it is inside my snap. So I tried to add “shell=True” to the subprocess.run:

command = “sudo netmgr -i country_code set:” + countryCode subprocess.run([command], shell=True)

But it didn’t work too… I got this error:

sudo: no tty present and no askpass program specified