我想要一个小的python脚本来设置HUDSON_HOME环境变量。
使用shell时,我可以使用>>设置HUDSON_HOME = http://localhost:8080
轻松完成此操作但是我怎么能直接通过python做同样的事情?我不想通过将命令行传递给os.system()来实现它。可以对os.environ()有任何帮助吗?
我的脚本中有: 进口口 os.environ( 'HUDSON_HOME')= 'http://localhost:8080'
但是它可能是为子程序而不是父shell设置的。有什么方法可以解决这个问题吗?
答案 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`
注意:这些是反引号,它知道如何获取运行命令的输出而不是命令本身。