解决Linux在sudo下执行python程序路径不存在的问题

有时候我们需要使用root权限来执行某些python程序。同时即使我们自己在.bashrc或其他类似的配置文件中定义了PYTHONPATH或者PATH路径的话,也会出现import路径不存在的错误。这是因为在使用sudo模式执行程序的时候,系统会自动重置PATH环境变量。我们可以查看/etc/sudoers文件,如果其中存在如下所示的这行:

Defaults env_reset

则说明sudo模式下会默认重置环境变量。那么为了能够在sudo下继续使用我们定义的环境变量,我们需要删掉上面这行,并添加如下内容即可。注意/etc/sudoers文件必须在root权限下才能编辑。

Defaults env_keep += "PYTHONPATH"
Defaults env_keep += "Any other env variable you want to keep"

当然如果我们只想在某个特定路径下执行一次代码,则可以在sudo命令中指定环境变量。指定环境变量的格式为ENV=/path/to/env

sudo PATH=/path/to/your/env python /path/to/your/script.py
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容