【发布时间】:2013-12-29 18:14:33
【问题描述】:
如果我的问题不是很清楚,我很抱歉。
我正在尝试创建一个变量,将其传递给linux 中的环境。然后,我希望能够在其他地方获得这个变量。到目前为止我在 linux 命令行上尝试过的内容:
local_pc:~/home$ export variable=10
local_pc:~/home$ python -c 'import os; print os.getenv("variable")'
10
听起来不错。但是当我在 python 中设置export 时,我将无法得到它
subprocess.call(["export","variable=20"],shell = True)
print(os.getenv("variable"))
None
所以我的问题是如何在 python 中执行xport variable=10
【问题讨论】:
-
您可以使用
subprocess.Popen将输出从send.py传输到receive.py,并将环境变量及其值写入管道。receive.py然后需要从管道中读取此数据并适当地更改其环境。不知道你还需要什么。 -
您能否提供更多详细信息?不要专注于如何去做,只需描述你想要做什么(用简单的英语),然后展示你尝试过的东西(最小但完整的代码示例)以及失败的方式(输入/输出,如果有的话回溯)。
-
嗨,如果我的问题不是很清楚,我很抱歉。
-
为什么需要更改环境变量,而不是例如将值作为命令行参数传递或通过子进程的标准输入写入或显式使用管道、套接字或任何其他进程间通信方法?
-
环境变量不是进行进程间通信的可行方法。这是基本IPC的一个很好的概述;也许其中之一对您有用。 tldp.org/LDP/lpg/node7.html
标签: python linux python-2.7 subprocess