嗨,我只是碰到了一件奇怪的事情。
在我的.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:/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'
与ParaView_DIR
相同的错误,但LD_LIBRARY_PATH
有额外的路径。
在shell中它们存在。
echo $PYTHONPATH
:/home/pschu/ParaView-3.14.1-Build/Utilities/VTKPythonWrapping/site-packages:home/pschu/ParaView-3.14.1-Build/bin
现在我做的时候
export PYTHONPATH=$PYTHONPATH
在我运行python解释器之前它可以工作。
发生了什么事?
答案 0 :(得分:2)
这有效:
% PYTHONPATH=$PYTHONPATH:/tmp python
在Python中:
>>> import os
>>> os.environ["PYTHONPATH"]
':/tmp'
答案 1 :(得分:1)
您有export
个变量吗?
export PYTHONPATH ParaView_DIR
LD_LIBRARY_PATH可能已经在您的其他一个启动文件中导出了。一旦变量被导出,它就会保持这种状态。
导出变量使其成为环境变量,如果你没有export
那么它只是shell的本地变量而子进程没有得到副本。
如果您使用的是C-shell(通常由%提示符表示),则语法不同:
setenv PYTHONPATH $PYTHONPATH