2

我想清理我的 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 上)的所有可能位置是什么?

4

3 回答 3

3

sys.pathPYTHONPATH不是一回事;前者包含后者。要找出 的值PYTHONPATH,请echo $PYTHONPATH在 shell 中执行。

这些文件/usr/{local/,}lib/pythonX.Y/dist-packages/site.py将更新,因此您可以导入使用和安装的sys.path软件包。卸载这些包会减少你的(虽然不是你的)。apt-geteasy_installpipsys.pathPYTHONPATH

于 2012-04-26T11:57:33.497 回答
1

可以设置环境变量的任何地方。

进程继承其父级的环境,因此您可以在任何阶段对其进行修改,无论是 shell 配置文件、shell 命令行中、您调用的任何中间脚本、python 脚本(带有 sys.path)或它使用的任何库。

于 2012-04-26T12:14:47.903 回答
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.
于 2012-04-26T13:02:07.560 回答