我正在设置os.environ['PYTHONHOME']="/home/user/OpenPrint/py2.6"我的python脚本
但是在脚本结束时我需要清除这个变量,以便我可以从另一个位置调用另一个python脚本.有人能告诉我该怎么做吗?我试过os.environ.clear()但是也清除了所有其他变量.
dis*_*aur 12
使用
os.environ.pop("PYTHONHOME")
Run Code Online (Sandbox Code Playgroud)
请参阅http://docs.python.org/2/library/os.html上的(最小)文档
尝试
del os.environ["PYTHONHOME"]
Run Code Online (Sandbox Code Playgroud)
这个来自os.environ dict的删除变量"PYTHONHOME".
要仅为正在调用的脚本取消设置环境变量,以下操作也将起作用。
os.unsetenv('PYTHONHOME')
Run Code Online (Sandbox Code Playgroud)
如果您必须删除其余流程的环境,os.environ.pop('PYTHONHOME')或者del os.environ['PYTHONHOME']更好。但是,如果您只想为最后分叉的脚本取消设置环境变量,os.unsetenv('PYTHONHOME')效果会更好,因为它仍然将环境变量保留在当前进程环境中。但是,这也取决于您调用脚本的方式。
Python文档说
取消设置(删除)名为 key 的环境变量。对环境的此类更改会影响以
os.system()、popen()或fork()和开头的子流程execv()。
请参阅下面的示例。
示例脚本 (/tmp/env.py)
import os
print os.environ["VIFI"]
Run Code Online (Sandbox Code Playgroud)
现在我们就来看看下面的内容。
vifi-a01:~ vifi$ python
Python 2.7.16 (default, Oct 16 2019, 00:34:56)
[GCC 4.2.1 Compatible Apple LLVM 10.0.1 (clang-1001.0.37.14)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> 'VIFI' in os.environ # EnvVar not present initially.
False
>>> os.environ['VIFI'] = 'V' # set the env var
>>> os.system('python /tmp/env.py') # child process/script gets it
V
0
>>> os.unsetenv('VIFI') # unset env only for child script
>>> os.system('python /tmp/env.py')
Traceback (most recent call last):
File "/tmp/env.py", line 2, in <module>
print os.environ["VIFI"]
File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/UserDict.py", line 40, in __getitem__
raise KeyError(key)
KeyError: 'VIFI'
256
>>> 'VIFI' in os.environ # rest of the flow still has it
True
>>> os.environ['VIFI'] = 'V' # set it again for child process/script
>>> os.system('python /tmp/env.py')
V
0
>>>
>>> os.environ["VIFI"] = "V"
>>> ^D
vifi-a01:~ vifi$ echo $VIFI
vifi-a01:~ vifi$ printenv | grep "VIFI"
vifi-a01:~ vifi$
Run Code Online (Sandbox Code Playgroud)
顺便说一句,设置环境os.environ仅适用于设置它的进程(及其子进程)。正如您在最后看到的那样,它对全局环境变量没有影响。
| 归档时间: |
|
| 查看次数: |
12360 次 |
| 最近记录: |