在Python脚本中,如何设置PYTHONPATH?
我知道怎么在我的 /etc/profile 文件和环境变量里设置它。
但是如果我想在一个脚本里设置它呢?我需要用到 import os, sys 吗?我该怎么做呢?
6 个回答
28
如果你直接使用 sys.path.append('dir/to/path')
而不检查这个路径是否已经添加过,你可能会在 sys.path
里生成一长串的路径。为了避免这种情况,我建议你这样做:
import sys
import os # if you want this directory
try:
sys.path.index('/dir/path') # Or os.getcwd() for this directory
except ValueError:
sys.path.append('/dir/path') # Or os.getcwd() for this directory
56
你可以通过 os.environ
来获取和设置环境变量:
import os
user_home = os.environ["HOME"]
os.environ["PYTHONPATH"] = "..."
但是因为你的解释器已经在运行了,这样做不会有任何效果。你最好使用
import sys
sys.path.append("...")
这个数组就是你的 PYTHONPATH
在解释器启动时会变成的样子。
266
你不需要设置 PYTHONPATH
,而是要把你的目录添加到 sys.path
里。这个 sys.path
是一个目录列表,Python会在这些目录里寻找你需要的包,所以你只需要把你的目录加到这个列表里就行了。
sys.path.append('/path/to/whatever')
实际上,sys.path
是通过把 PYTHONPATH
的值按照路径分隔符(在类Linux系统上是 :
,在Windows上是 ;
)来初始化的。
你也可以使用 site.addsitedir
来添加目录,这个方法还会考虑你传入的目录里是否有 .pth
文件。(而如果你直接在 PYTHONPATH
里指定目录,就不会有这个效果。)