以root身份执行Python时找不到模块
因为我需要在我的Python代码中创建一个原始套接字,所以我必须以管理员身份运行它。
`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
的问题。
1 个回答
3
在使用sudo
命令时,你需要保留PYTHONPATH
这个环境变量。sudo
可以通过一个叫sudoers
的文件来设置,确保某些环境变量不会被丢失。
你可以以管理员身份运行visudo
,然后添加类似下面的内容:
Defaults env_keep += "PYTHONPATH"
最后,记得保存你所做的更改。