Python:与平台无关的修改PATH环境variables的方法

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

一些类似于os.path.join()

你应该可以修改os.environ

由于os.pathsep是分隔不同path的字符,因此您应该使用它来追加每个新path:

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

或者,如果有多个path添加到列表中:

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

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

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

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

这意味着PATH (和其他环境variables) 在同一个进程中运行的C代码可见。

(由于注释不能包含格式,所以我必须把这个答案放在一个答案中,但是我觉得这是一个重要的观点,这实际上是对没有等同于“导出”的评论的评论 。

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