os.environ()在为Hudson设置时出错

时间:2010-06-16 10:41:18

标签: python hudson environment-variables

我想要一个小的python脚本来设置HUDSON_HOME环境变量。

使用shell时,我可以使用>>设置HUDSON_HOME = http://localhost:8080

轻松完成此操作

但是我怎么能直接通过python做同样的事情?我不想通过将命令行传递给os.system()来实现它。可以对os.environ()有任何帮助吗?

我的脚本中有: 进口口 os.environ( 'HUDSON_HOME')= 'http://localhost:8080'

但是它可能是为子程序而不是父shell设置的。有什么方法可以解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

os.environ是环境的字典表示。你会这样使用它:

>>> import os
>>> os.environ['HUDSON_HOME'] = 'http://localhost:8080'

但是,它无法修改父进程AFAIK的环境。

答案 1 :(得分:0)

我不知道有任何方法可以按照你的要求执行此操作,因为修改Python程序中的环境只会改变它的环境,以及任何子进程,而不是父进程过程

那就是说,如果你需要做的就是有一些Python程序来计算变量的值,取决于你的shell,你应该能够简单地将它的输出分配给环境变量: / p>

#!/usr/bin/env python

# code goes here

print 'http://localhost:8080'

如果以上是您的程序,您可以在shell上运行它,并将HUDSON_HOME设置为http://localhost:8080

$ set HUDSON_HOME=`python program.py`

注意:这些是反引号,它知道如何获取运行命令的输出而不是命令本身。