作者热门文章
- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
编辑:适用于 root,sudo 是问题所在。阅读下文。
我有一个包含我自己的库的目录,例如我的 Python 库位于 /home/name/lib/py
。
我已通过将以下行添加到 /etc/bash.bashrc
来为所有用户(包括 root)将此目录添加到 Python 的 PATH:
export PYTHONPATH=$PYTHONPATH:/home/name/lib/py
它适用于所有用户(包括 root)。但它不适用于 sudo。有什么方法可以让 sudo 使用 /etc/bash.bashrc
?
编辑:更多信息:
我已将 PYTHONPATH
添加到 sudoers 文件中,如下所示:Defaults env_keep += "HOME PYTHONPATH"
。它不会工作。
env | grep PYTHON:
PYTHONDONTWRITEBYTECODE=1
PYTHONPATH=/home/name/lib/py
sudo env | grep PYTHON:
PYTHONDONTWRITEBYTECODE=1
sudo echo $PYTHONPATH:
/home/name/lib/py
最佳答案
PATH
变量也是如此,它也不会被带入 super 用户环境,即使您传递了保留环境标志 -E
。
我现在正在使用这个 sudo 命令,没有任何其他修改:
sudo -HE env PATH=$PATH PYTHONPATH=$PYTHONPATH ./bin/myscript
因为这是一种(对我来说)有效的替代方法,所以我想我会在这里分享。
关于PYTHONPATH 不适用于 GNU/Linux 上的 sudo(适用于 root),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7969540/
我是一名优秀的程序员,十分优秀!