由于我需要在python代码中创建一个原始套接字,我需要以root身份运行它。 当我这样做时,我发现我的导入模块不再以某种方式得到支持:
`No module named foo`
(我曾经将我的脚本作为sh myScript.sh option1
运行,我的python script.py
是从myScript.sh
内调用的。
现在我尝试:sudo fullPathName/myScript.py
我也在其开头
#!/usr/bin/python and make it executable by chmod +x myScript.py
仍然没有No module named foo
问题。
答案 0 :(得分:2)
使用PYTHONPATH
运行命令时,您需要保留sudo
。 sudo
可以配置为通过sudoers
文件保留某些环境变量。
所以你可以运行visudo
(以root身份)并添加如下内容:
Defaults env_keep += "PYTHONPATH"
然后保存更改。