python版本与.bash_profile中的设置不同
我在HP-UX上安装了好几个版本的Python。
$ python -V
Python 2.3.3
$ which python
/usr/local/bin/python
$ echo $PYTHONPATH
/usr/python-2.5.2/lib/python2.5/site-packages:/usr/python-2.5.2/lib/python2.5
在我的.bash_profile文件里,我设置了想用的版本是2.5.2,但为什么系统却用的是更旧的版本呢?还有,/usr/local/bin/python
这个路径是在哪里设置的?我该怎么删除这个路径呢?
1 个回答
1
看起来你可能不太清楚你的 shell PATH
和 PYTHONPATH
之间的区别。简单来说,PATH
是一个目录列表,shell 会在这些目录中寻找可以执行的程序;而 PYTHONPATH
则是一个目录列表,Python 解释器会把这些目录添加到 sys.path
中,用来寻找可以导入的模块和包。
你现在还在用 Python 2.3.3,是因为你没有把 Python 2.5.2 的二进制目录(根据你上面的 PYTHONPATH
设置,应该是 /usr/python-2.5.2/bin
)添加到 shell 的 PATH
中。最好的做法是在你的 shell 初始化文件里添加这个目录,通常是 ~/.bash_profile
或者 ~/.profile
。
你需要确保这个新添加的目录出现在 /usr/bin/local
之前,这样 shell 才会优先找到它,否则 python
命令还是会找到 /usr/local/bin
里的 Python。通常你需要添加类似下面的语句:
PATH=/usr/python-2.5.2/bin:$PATH
记得在做完这个修改后,要重启你的 shell 或者重新加载初始化文件,这样才能让改动生效,确保你在测试的 shell 中可以使用。
另外要注意,任何 Python 解释器在启动时都会自动添加必要的 sys.path
条目,以便找到它安装的库,所以其实不需要像你上面提到的那样设置 PYTHONPATH
来定位这些库。