我想清理我的PYTHONPATH。
我知道我将它附加在/home/me/.profile中,就像这样:
PYTHONPATH=/home/hoff/code/someproject/pythonmods:$PYTHONPATH
PYTHONPATH=/home/hoff/code/google_appengine/google/appengine/tools:$PYTHONPATH
export PYTHONPATH
但是我必须有其他地方附加PYTHONPATH,当我进入python解释器并查看sys.path
时,还有各种其他目录。
我可以在哪里指定它们,即哪些可以附加PYTHONPATH(在linux / ubuntu上)的地方?
答案 0 :(得分:3)
sys.path
和PYTHONPATH
不是一回事;前者包含后者。要找出PYTHONPATH
的值,请在shell中执行echo $PYTHONPATH
。
文件/usr/{local/,}lib/pythonX.Y/dist-packages/site.py
将更新sys.path
,因此您可以导入使用apt-get
,easy_install
和pip
安装的软件包。卸载这些软件包会减少sys.path
(虽然不是您的PYTHONPATH
)。
答案 1 :(得分:1)
可以设置环境变量的任何地方。
进程继承其父环境,因此您可以在任何阶段修改它,无论是shell配置文件,shell命令行,您调用的任何中间脚本,python脚本(使用sys.path)还是它使用的任何库
答案 2 :(得分:1)
如前所述......它几乎可以设置在任何地方。我想看的几个地方(假设您的登录shell是典型的bash ......)
.bashrc
/etc/profile
Anything in /etc/profile.d/ (typically loaded from /etc/profile)
~/.bash_profile
~/.bash_login
来自man bash
When bash is invoked as an interactive login shell, or as
a non-interactive shell with the --login option, it first
reads and executes commands from the file /etc/profile,
if that file exists. After reading that file, it looks for
~/.bash_profile, ~/.bash_login, and ~/.profile
和
When an interactive shell that is not a login shell is started,
bash reads and executes commands from ~/.bashrc, if that
file exists.