【发布时间】:2016-10-27 18:32:05
【问题描述】:
在 python 中,如何以编程方式附加到我的系统路径?我知道sys.path.append 并且刚刚搜索了文档,但我有点困惑。它告诉我 sys.path.append 仅附加到 PYTHONPATH 而不是实际的系统路径。有没有办法可以暂时以编程方式附加到系统路径?
【问题讨论】:
标签: python python-2.7 path
在 python 中,如何以编程方式附加到我的系统路径?我知道sys.path.append 并且刚刚搜索了文档,但我有点困惑。它告诉我 sys.path.append 仅附加到 PYTHONPATH 而不是实际的系统路径。有没有办法可以暂时以编程方式附加到系统路径?
【问题讨论】:
标签: python python-2.7 path
只需更新环境PATH变量:
old_path = os.environ['PATH']
try:
os.environ['PATH'] = "{}{}{}".format('/my/new/path', os.pathsep, old_path)
finally:
os.environ['PATH'] = old_path
另外,程序在调用其他工具时保持一个单独的环境是很常见的。
env = os.environ.copy()
env['PATH'] = "{}{}{}".format('/my/new/path', os.pathsep, env['PATH'])
# change other env here...
subprocess.check_call(['my', 'tool'], env=env)
【讨论】:
sys.append.path 只对PYTHONPATH 本身起作用?
sys.path(.append),是的只有PYTHONPATH。
sys.path.append 仅附加到正在运行的程序的模块查找路径。如果它执行其他程序,他们将只能看到原始环境中的PYTHONPATH。 - 我的意思是作为子进程执行,而不是导入。如果执行其他 python 脚本并希望它们看到不同的路径,则需要与PYTHONPATH 玩相同的os.environ 游戏。