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