问题描述
编辑:Works的根,sudo的是这个问题。阅读下文。
我有一个目录我自己的库,例如我的Python库位于 /家/名/ lib中/ PY
。结果
我已通过添加以下行 /etc/bash.bashrc
这个目录添加到 Python的PATH 为所有用户(包括root):
出口PYTHONPATH = $ PYTHONPATH:/家/名/ lib中/ PY
它适用于所有用户(包括根)。不过,这并不sudo的工作。有什么办法可以让sudo的使用 /etc/bash.bashrc
?
编辑:更多信息:
我已经添加了 PYTHONPATH
来sudoers文件,像这样:默认env_keep + =HOME PYTHONPATH
。它罗纳尔多,也很想不起作用。
ENV | grep的PYTHON:
PYTHONDONTWRITEBYTE code = 1
PYTHONPATH = /家/名/ lib中/ PY须藤ENV | grep的PYTHON:
PYTHONDONTWRITEBYTE code = 1须藤回声$ PYTHONPATH:
/家/名/ lib中/ PY
在我的情况下,修复是从sudoers文件删除默认值!env_reset
。
不过,我必须保持默认env_keep + =PYTHONPATH
在sudoers中。结果
其实我已经加入默认env_reset
(其中复位环境变量),但它仍然有效,因为 env_keep
。
似乎 env_keep
和海誓山盟!env_reset
冲突,但是这只是一个猜测。
所以,整个过程:
- 添加
出口PYTHONPATH = /你/自定义/路径
到〜/ .bashrc中
或/etc/bash.bashrc
- 添加
PYTHONPATH
到默认env_keep + =ENV1 ENV2 ......
在sudoers文件 - 删除
默认值!env_reset
从sudoers文件如果present
EDIT: Works for root, sudo is the problem. Read below.
I have a directory with my own libraries, e.g. my Python libraries are located at /home/name/lib/py
.
I've added this directory to Python's PATH for all users (including root) by adding the following line to /etc/bash.bashrc
:
export PYTHONPATH=$PYTHONPATH:/home/name/lib/py
It works for all users (including root). But it doesn't work for sudo. Is there any way I can make sudo use /etc/bash.bashrc
?
EDIT: More information:
I've added PYTHONPATH
to sudoers file like so: Defaults env_keep += "HOME PYTHONPATH"
. It sitll doesn't work.
env | grep PYTHON:
PYTHONDONTWRITEBYTECODE=1
PYTHONPATH=/home/name/lib/py
sudo env | grep PYTHON:
PYTHONDONTWRITEBYTECODE=1
sudo echo $PYTHONPATH:
/home/name/lib/py
The fix in my case was to remove Defaults !env_reset
from sudoers.
But, I had to keep Defaults env_keep += "PYTHONPATH"
in sudoers.
I've actually added Defaults env_reset
(which resets environment variables), but it still works because of env_keep
.
It seems that env_keep
and !env_reset
conflict with eachother, but that's just a guess.
So, the whole process:
- add
export PYTHONPATH=/your/custom/path
to~/.bashrc
or/etc/bash.bashrc
- add
PYTHONPATH
toDefaults env_keep += "ENV1 ENV2 ..."
in sudoers file - remove
Defaults !env_reset
from sudoers file if present
这篇关于PYTHONPATH不工作的GNU / Linux上sudo的(适用于根)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!