我知道如何在/etc/profile 和环境变量中设置它。
但如果我想在剧本中设置它呢? 是进口操作系统吗,系统,我怎么做?
您不设置 PYTHONPATH,而是将条目添加到 sys.path。这是一个应该搜索 Python 包的目录列表,因此您可以将目录添加到该列表中。
PYTHONPATH
sys.path
sys.path.append('/path/to/whatever')
实际上,sys.path是通过分割路径分隔符上的 PYTHONPATH值来初始化的(类 Linux 系统上的 :,Windows 上的 ;)。
:
;
还可以使用 site.addsitedir添加目录,该方法还将考虑传递的目录中存在的 .pth文件。(在 PYTHONPATH中指定的目录不是这种情况。)
site.addsitedir
.pth
您可以通过 os.environ获取和设置环境变量:
os.environ
import os user_home = os.environ["HOME"] os.environ["PYTHONPATH"] = "..."
但是由于您的解释器已经在运行,所以这样做不会有任何效果
import sys sys.path.append("...")
这是解释器启动时将转换为 PYTHONPATH的数组。
PYTHONPATH 以 Sys.path结束,您可以在运行时修改它。
import sys sys.path += ["whatever"]
如果你把 sys.path.append('dir/to/path')没有检查它已经被添加,你可以在 sys.path中生成一个长列表。为此,我建议这样做:
sys.path.append('dir/to/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
您可以通过 os.environ['PATHPYTHON']=/some/path设置 PYTHONPATH,然后需要调用 os.system('python')来重新启动 python shell 以使新添加的路径有效。
os.environ['PATHPYTHON']=/some/path
os.system('python')
我在 linux 上也可以这样做:
import sys sys.path.extend(["/path/to/dotpy/file/"])