python 设置环境变量
2018-04-18 15:26
239 查看
作者:小醉
链接:https://www.zhihu.com/question/53235092/answer/236439018
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本人进行如下测试,os.putenv()会在当前窗口下生效。
1、os.environ['']=''(不生效)
2、os.putenv('','')(生效)
另外一些研究:
ssh-agent, dircolors 等已经为我们提供了思路:把设置环境变量的 shell 命令写到标准输出。
所以 getenv.py 如下:
然后
写/etc/profile /etc/environment之类的配置文件然后重启
从你的管理进程(你能控制环境变量的那个进程)启动,子进程会继承父进程的环境变量,但是没有标准的方法(或者说我不知道)更改父进程和父进程开始的其他子进程的环境变量
请参考
1、修改 ~/.bashrc文件
2、添加 export PATH=/usr/local/****/bin:$PATH
3、在终端运行 source ~/.bashrc
试试这样,将上面的写成.sh 脚本,再用subprocess 模块中的方法调用这个sh脚本。
请参考
1、修改 ~/.bashrc文件
2、添加 export PATH=/usr/local/****/bin:$PATH
3、在终端运行 source ~/.bashrc
试试这样,将上面的写成.sh 脚本,再用subprocess 模块中的方法调用这个sh脚本。
编辑于 2016-12-02
知乎用户
通信IC码农
目前好想没有直接能够用python改变当前shell环境变量的方法
python处理逻辑比较方便,但是修改环境变量只能在python脚步的子进程当中生效,并不能在shell进程生效。
所以目前我自己用的一种比较dirty的方法是:
复杂的逻辑部分交给python脚本实现,
shell 脚本只负责简单的source(环境变量会在当前shell生效)
本质上是python 子进程向父进程shell 通过文件方式通信。
如果找到更优雅的通信方法请告诉我
发布于 2017-08-20
Cosmia Fu
会写Python的Haskell原教旨主义恐怖分子
写/etc/profile /etc/environment之类的配置文件然后重启
从你的管理进程(你能控制环境变量的那个进程)启动,子进程会继承父进程的环境变量,但是没有标准的方法(或者说我不知道)更改父进程和父进程开始的其他子进程的环境变量
链接:https://www.zhihu.com/question/53235092/answer/236439018
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本人进行如下测试,os.putenv()会在当前窗口下生效。
1、os.environ['']=''(不生效)
import os import commands os.environ['JAVA_HOME'] os.environ['JRE_HOME'] os.environ['PATH'] os.environ['CLASSPATH'] print commands.getoutput('java -version') JAVA_HOME="/usr/local/jdk1.6.0_25" JRE_HOME="%s/jre"%JAVA_HOME PATH=os.environ['PATH'] PATH="%s/bin:%s/bin:%s"%(JAVA_HOME,JRE_HOME,PATH) CLASSPATH=".:%s/lib/:%s/lib/"%(JAVA_HOME,JRE_HOME) d={'JAVA_HOME':JAVA_HOME, 'JRE_HOME':JRE_HOME, 'PATH':PATH, 'CLASSPATH':CLASSPATH} os.environ=dict(os.environ.items() + d.items()) os.environ['JAVA_HOME'] os.environ['JRE_HOME'] os.environ['PATH'] os.environ['CLASSPATH'] print commands.getoutput('java -version')
2、os.putenv('','')(生效)
import os import commands os.environ['JAVA_HOME'] os.environ['JRE_HOME'] os.environ['PATH'] os.environ['CLASSPATH'] print commands.getoutput('java -version') JAVA_HOME="/usr/local/jdk1.6.0_25" JRE_HOME="%s/jre"%JAVA_HOME PATH=os.environ['PATH'] PATH="%s/bin:%s/bin:%s"%(JAVA_HOME,JRE_HOME,PATH) CLASSPATH=".:%s/lib/:%s/lib/"%(JAVA_HOME,JRE_HOME) os.putenv('PATH','%s'%PATH) print commands.getoutput('java -version')
另外一些研究:
ssh-agent, dircolors 等已经为我们提供了思路:把设置环境变量的 shell 命令写到标准输出。
所以 getenv.py 如下:
#!/usr/bin/env python2 try: # py3 from shlex import quote except ImportError: # py2 from pipes import quote path = '/TOOLS/Caden/linux/X64/ even spaces ' print('export MYDATA={}'.format(quote(path)))
然后
eval $(./getenv.py) && echo $MYDATA
写/etc/profile /etc/environment之类的配置文件然后重启
从你的管理进程(你能控制环境变量的那个进程)启动,子进程会继承父进程的环境变量,但是没有标准的方法(或者说我不知道)更改父进程和父进程开始的其他子进程的环境变量
请参考
1、修改 ~/.bashrc文件
2、添加 export PATH=/usr/local/****/bin:$PATH
3、在终端运行 source ~/.bashrc
试试这样,将上面的写成.sh 脚本,再用subprocess 模块中的方法调用这个sh脚本。
请参考
1、修改 ~/.bashrc文件
2、添加 export PATH=/usr/local/****/bin:$PATH
3、在终端运行 source ~/.bashrc
试试这样,将上面的写成.sh 脚本,再用subprocess 模块中的方法调用这个sh脚本。
编辑于 2016-12-02
知乎用户
通信IC码农
目前好想没有直接能够用python改变当前shell环境变量的方法
python处理逻辑比较方便,但是修改环境变量只能在python脚步的子进程当中生效,并不能在shell进程生效。
所以目前我自己用的一种比较dirty的方法是:
复杂的逻辑部分交给python脚本实现,
#!/bin/env python import os import sys ..... 复杂的逻辑处理, 比如在不同的项目目录下设置不同的环境变量 ..... 最后将这些设置保持到临时文件"._py_env_cfg"
shell 脚本只负责简单的source(环境变量会在当前shell生效)
#!/bin/csh python env_gen.py #生成临时配置文件"._py_env_cfg" source ._py_env_cfg #source rm ._py_env_cfg #删除临时文件
本质上是python 子进程向父进程shell 通过文件方式通信。
如果找到更优雅的通信方法请告诉我
发布于 2017-08-20
Cosmia Fu
会写Python的Haskell原教旨主义恐怖分子
写/etc/profile /etc/environment之类的配置文件然后重启
从你的管理进程(你能控制环境变量的那个进程)启动,子进程会继承父进程的环境变量,但是没有标准的方法(或者说我不知道)更改父进程和父进程开始的其他子进程的环境变量
相关文章推荐
- python设置环境变量方法
- Python环境变量设置
- python怎么设置环境变量
- Linux中Python环境变量的设置
- win10设置环境变量,命令行下输入python,pip可运行
- Python环境变量PYTHONPATH设置和easy_install简单使用
- Python环境变量设置问题
- linux设置python环境变量
- 使用Python设置环境变量
- Python环境变量设置方法
- Sublime修改成为Python编辑器,设置系统环境变量
- vim-python全能补全与python环境变量设置
- windows安装python详细教程 环境变量设置是关键
- python 调用 shell 时 设置环境变量
- python环境变量的设置
- 为什么需要设置pythonpath环境变量?
- python centos下环境变量设置
- python环境变量设置
- 在Windows系统下设置Python的环境变量,以及安装BeautifulSoup
- linux设置python环境变量