当我执行时:
echo $PYTHONPATH
在命令行上我得到以下输出:
/home/nehal/catkin_ws/devel/lib/python2.7/dist-packages:/opt/ros/kinetic/lib/python2.7/dist-packages:/home/nehal/anaconda3/lib/python3.6/site-packages:/home/nehal/anaconda3/lib/python3.6/dist-packages:/home/nehal/anaconda3/lib/python3.6/dist-packages:/home/nehal/anaconda3/lib/python3.6/dist-packages:/home/nehal/anaconda3/lib/python3.5/dist-packages:/home/userx/anaconda3/lib/python3.5/dist-packages:/home/userx/anaconda3/lib/python3.5/dist-packages:/home/userx/anaconda3/lib/python3.5/dist-packages
我查看了.bashrc
文件,发现只有PYTHONPATH
一套
export PYTHONPATH="/home/nehal/anaconda3/lib/python3.6/site-packages:$PYTHONPATH"
我也查过.profile
,/etc/environment
但/etc/profile
无处可寻PYTHONPATH
。
我的问题是上面的额外路径是从哪里来的?
答案1
您可以通过跟踪 bash 打开哪些文件来找出正在获取哪些文件:
strace -e open bash -l
这应该打印出 bash 尝试打开的所有文件(其中许多是您可以忽略的 C 库)。这应该会提示您去哪里寻找。 (bash 的“-l”选项要求它作为“登录”shell 运行,这通常会导致 bash 解析更多启动文件。)
答案2
启动时,“bash”会从许多文件加载其设置。它们大多数通常位于“/etc”目录的子目录中。因此,我将运行以下命令来查找包含“PYTHONPATH”的所有文件:
grep -R PYTHONPATH /etc 2>/dev/null