【发布时间】:2015-01-23 11:50:58
【问题描述】:
我正在尝试永久设置环境变量。但暂时它正在工作。
如果我在程序下面运行,我得到了变量路径。关闭它并使用命令printenv LD_LIBRARY_PATH 打开新终端以查找变量路径后,什么都不会打印。
#!/usr/bin/python
import os
import subprocess
def setenv_var():
env_var = "LD_LIBRARY_PATH"
env_path = "/usr/local/lib"`enter code here`
os.environ[env_var] = env_path
process = subprocess.Popen('printenv ' + env_var, stdout=subprocess.PIPE, shell=True)
result = process.communicate()[0]
return result
if __name__ == '__main__':
print setenv_var()
请帮助我。
【问题讨论】:
-
这是一个 similar question 和一个 negative answer:你不能从子进程中这样做
-
这通常是不可能的,无论是从 python 还是从任何其他进程:stackoverflow.com/a/496777/2954288。考虑到您提出问题的方式,一种方法是让您的 python 程序操作您的 ~/.bashrc 或 ~/.profile ,下次启动 shell 时,它会很好地读取新的环境设置。
标签: python linux unix environment-variables