在Python中,我可以访问环境变量:
os.environ['FOO']
我想知道变量是先前通过export
设置的,还是只为当前的python脚本设置的,如下所示:
FOO=BAR python some-script.py
基本上我只想使用FOO
,如果它在上面的行中设置,而不是按export
永久定义。
遗憾的是,python脚本本身的参数在这里没有选择。这是一个插件,父应用程序不允许传递它不了解的自定义参数。
我希望我能以某种方式访问启动python的完全命令(FOO=BAR python some-script.py
),但似乎没有这样的东西。我想如果有这样的功能,它会出现在os
或sys
个包中。
答案 0 :(得分:4)
环境只是一个C字符串数组,那里没有元信息可以帮助您确定调用shell是否具有标记为export
的变量。
在Linux上,您可以检查父PID的/proc/(pid)/environ
(如果您有合适的权限),以查看父级永久环境中的内容,但这显然是不可移植且易碎的。
无论如何,花时间在这上面似乎是错误的;让用户以他们认为合适的任何方式传递环境变量。