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。