环境变量不在Python解释器中
嗨,我刚刚碰到一件奇怪的事 在my.bashrc中,如下所示:环境变量不在Python解释器中,python,environment-variables,Python,Environment Variables,嗨,我刚刚碰到一件奇怪的事 在my.bashrc中,如下所示: PYTHONPATH=$PYTHONPATH:/home/pschu/ParaView-3.14.1-Build/Utilities/VTKPythonWrapping/site-packages:home/pschu/ParaView-3.14.1-Build/bin ParaView_DIR=/home/pschu/ParaView-3.14.1-Build LD_LIBRARY_PATH=$LD_LIBRARY_PATH:
PYTHONPATH=$PYTHONPATH:/home/pschu/ParaView-3.14.1-Build/Utilities/VTKPythonWrapping/site-packages:home/pschu/ParaView-3.14.1-Build/bin
ParaView_DIR=/home/pschu/ParaView-3.14.1-Build
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/pschu/ParaView-3.14.1-Builds/bin
现在,当我启动python解释器并键入以下内容时:
>>>os.environ['PYTHONPATH']
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/lib64/python2.7/UserDict.py", line 23, in __getitem__
raise KeyError(key)
KeyError: 'PYTHONPATH'
现在当我这么做的时候
export PYTHONPATH=$PYTHONPATH
在我运行python解释器之前,它可以工作
发生了什么事?这是有效的:
% PYTHONPATH=$PYTHONPATH:/tmp python
在Python中:
>>> import os
>>> os.environ["PYTHONPATH"]
':/tmp'
您是否导出了变量
export PYTHONPATH ParaView_DIR
LD_LIBRARY_路径可能已在其他启动文件中导出。导出变量后,它将保持这种状态
导出变量将使其成为环境变量,如果不导出,则它只是shell的本地变量,子进程不会获得副本
如果您使用的是C-shell(通常由%提示符指示),则语法不同:
setenv PYTHONPATH $PYTHONPATH
如果没有
export
或setenv
,会发生什么?是的,因为环境变量和启动的python
程序位于同一行。在这种情况下,不需要导出。
setenv PYTHONPATH $PYTHONPATH