2

我的系统是 RedHat 5 Linux 并安装了默认的 python 2.4。为了执行 Mercurial1.81,我尝试将 python 从 2.4 升级到 2.6 并将其保存在不同的目录中。

以下是我使用的命令:

find -xdev -samefile /usr/bin/python | xargs rm

我试图删除用于链接 python 和 python2.6 之间的硬链接。然后我使用命令:

 ln -s /usr/bin/python2.4 /usr/bin/python
 ln -s /usr/bin/python2.6 /usr/local/bin/python
 export PATH=/usr/local/bin:$PATH
 Change first line of hg to #!/usr/bin/env python
 PATHONHOME=/usr/lib/python2.6
 PATHONPATH=/usr/lib/python2.6 

然后当我输入“whereis python”时,结果如下。

python: /usr/bin/python2.4 
/usr/bin/python 
/usr/lib/python2.4 
/usr/lib/python2.6 
/usr/local/bin/python 
/usr/include/python2.4 
/usr/include/python2.6 
/usr/share/man/man1/python.1.gz

然后当我输入“which python”时,它指向“usr/bin/python”。当我输入“python -V”时,它显示“python 2.4.3”。它似乎指向 2.4.3。然后当我使用命令时

python -c "import sys; print '\n' .join(sys.path)"

这显示了

   /usr/lib64/python24.zip
    /usr/lib64/python2.4
    /usr/lib64/python2.4/plat-linux2
    /usr/lib64/python2.4/lib-tk
    /usr/lib64/python2.4/lib-dynload
    /usr/lib64/python2.4/site-packages
    /usr/lib64/python2.4/site-packages/Numeric
    /usr/lib64/python2.4/site-packages/gtk-2.0
    /usr/lib/python2.4/site-packages

我试图通过键入“find / -name python2.6”来查找python 2.6的路径,它显示

/usr/include/python2.6
/usr/lib/python2.6
/usr/lib64/python2.6

这是我的问题:
(1)如何将上面在线的替换结果更改为 python2.6 ?
(2) 为什么找不到 /usr/bin/python2.6 或 /usr/local/bin/python2.6 等目录?这是否意味着我的 python2.6 安装错误或不小心删除了目录?
我从输入的那些命令中得到的结果有什么问题吗?
(3) 知道当我使用“hg push”时如何让系统执行 python2.6 吗?
(4)我应该在 /usr/local/bin 重新安装 python2.6 吗?

非常感谢,

4

2 回答 2

1

您的 mercurial 安装在/usr/lib64/python2.4/site-packages/mercurial. 该特定安装将需要 Python 2.4。第一行/usr/bin/hg可能是:

#!/usr/bin/python

假设您使用的是来自官方存储库的包,Mercurial 将依赖于默认的 Python 版本 2.4。因此,搞砸/usr/bin/python并不是一个好主意。如果它真的困扰你,你可以easy_install在你的新 Python 2.6 上安装一个。

于 2012-02-04T18:04:22.490 回答
1

我建议改/usr/bin/python回系统的 Python 2.4 以避免破坏系统的稳定性。通过符号链接到/usr/bin/python2.4然后添加/usr/local/bin/python符号链接来做到这一点/usr/bin/python2.6

然后在你的 shell rc 文件(例如 ~/.bashrc)中改变你的路径以首先找到本地 python(export PATH=/usr/local/bin:$PATH如果它还没有按那个顺序),然​​后编辑/usr/bin/hg's 的第一行,#!/usr/bin/env python以便它在你的默认情况下运行它用户会话。

如果由于某种原因,python 仍在尝试加载错误版本的 python 库(运行 2.6 python 二进制文件时为 2.4),您可以更改 python 可执行文件用于使用 PYTHONHOME 环境变量定位其主目录的搜索路径.

但是,最好不要在整个系统范围内更改此系统,因为可能有很多 Python 脚本被卷入操作系统,这些脚本可能与 Python 2.6 不兼容。尝试将其添加到您的 shell rc 文件中。

如果出于某种原因 PYTHONHOME 不这样做,您可以PYTHONPATH直接编辑环境变量(在您的 rc 文件中),您可以向其中添加 python 2.6 库路径。

我建议镜像python -c "import sys; print '\n'.join(sys.path)".

当运行 python 2.6 时,这个单行应该显示 python 2.6 路径,但如果它仍然显示 2.4 路径,你需要用 python 2.6 的正确路径替换它显示的路径(这可能是相同的,只有“6”而不是“4”)

于 2012-02-04T16:00:38.263 回答