python版本与.bash_profile中的设置不同

0 投票
1 回答
880 浏览
提问于 2025-04-18 12:28

我在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 PATHPYTHONPATH 之间的区别。简单来说,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 来定位这些库。

撰写回答