Python:独立于平台的修改PATH环境变量的方法

时间:2009-11-05 15:17:39

标签: python path cross-platform environment-variables

有没有办法使用python以独立于平台的方式修改PATH环境变量?

os.path.join()类似的东西?

3 个答案:

答案 0 :(得分:143)

您应该可以修改os.environ

由于os.pathsep是分隔不同路径的字符,因此您应该使用此字符附加每个新路径:

os.environ["PATH"] += os.pathsep + path

或者,如果要在列表中添加多个路径:

os.environ["PATH"] += os.pathsep + os.pathsep.join(pathlist)

正如您所提到的,os.path.join也可以用于您必须附加的每个单独路径,如果您必须从不同的部分构建它们。

答案 1 :(得分:17)

请注意,os.environ实际上不是字典。它是一个特殊的字典 - like 对象,它使用setenv实际设置当前进程中的环境变量。

>>> os.environ.__class__
<class os._Environ at 0x100472050>
>>> import os
>>> os.environ["HELLO"] = "WORLD"
>>> os.getenv("HELLO")
'WORLD'

这意味着PATH(以及其他环境变量) 对于在同一进程中运行的C代码是。

(由于评论不能包含格式,我必须将其放在答案中,但我觉得这是一个重要的观点。这实际上是对the comment about there being no equivalent to 'export'的评论。)

答案 2 :(得分:6)

在Python中修改环境变量需要注意的一点是,没有“export”shell命令的等价物。没有办法将更改注入当前进程,只有子进程。