Fedora Python升级导致easy_install失效

0 投票
3 回答
2008 浏览
提问于 2025-04-15 11:55

Fedora Core 9自带Python 2.5.1。我可以用YUM来获取最新的版本。

为了准备2.6的官方测试,我想先用2.5.4。不过,似乎没有Fedora 9的YUM包,因为2.5.4并不是FC9的官方版本。

我下载了2.5.4,执行了./configure; make; make install,结果得到了两个Python版本。一个是官方的2.5.1(在/usr/bin),另一个是新的2.5.4(在/usr/local/bin)。

我的技术栈没有安装在/usr/local/lib/python2.5里。

看起来我有几种选择可以继续。有没有人有好的建议?

  • /usr/lib/python2.5/*复制到/usr/local/lib/python2.5,这样可以复制我的环境。这应该没问题,除非某些Python库在安装时把/usr/bin/python写死了。这种方法简单,但有没有什么缺点呢?

  • 通过运行easy_install重新安装所有东西。不过,easy_install(目前)是固定指向/usr/bin/python的。所以,我得先修复easy_install,然后再重新安装所有东西。

    这需要一些时间,但能让我有一个干净、最新的环境。不过,这样做有没有什么缺点呢?[为什么easy_install会固定自己?]

  • /usr/bin/python重新链接到/usr/local/bin/python。我还是得复制或重新安装库,所以我觉得这对我没什么好处。[这样可以让easy_install正常工作;但编辑/usr/bin/easy_install也能做到。]

有没有人复制过他们的库?这真那么简单吗?

还是说我应该修复easy_install,然后按照安装指南一步步来,建立一个新的、干净的、最新的环境?


编辑

或者,我应该

  • 跳过解决2.5.1和2.5.4的问题,直接升级到2.6吗?

3 个回答

2

我在安装Python 2.5的时候也遇到过类似的问题,那时我用的是一个比较老的Ubuntu版本,系统自带的是2.4。

我最开始尝试修补一下easy_install,但是这样做导致了很多问题,尤其是那些想要使用系统自带Python的程序。我经常需要调整工具链来解决每次安装时可能出现的不同错误。通过apt安装任何Python软件,或者安装任何带有Python easy_install脚本的软件,常常让我哭笑不得。我知道我可能可以更仔细地修补easy_install,但最后我放弃了。

后来,我选择直接复制库文件,这样一切就正常工作了。正如你所说,可能会有一些问题,具体取决于你安装了什么,但我没有遇到麻烦。我仔细检查了Python的site.py模块,发现它完全依赖相对路径,并动态生成绝对路径;这让我对“复制所有东西”的做法有了些信心。我又检查了一下.pth文件,然后就开始动手了。

2

我建议你创建一个虚拟环境(或者多个)来安装软件包。

4

通常情况下,你的电脑上只会安装一个版本的Python。因为2.5.1和2.5.4是同一个版本系列的,所以把你的库文件复制过去应该没问题。不过,你需要注意的是,现在你的路径中有/usr/bin/python和/usr/local/bin/python,这可能会让一些工具搞混淆。

如果你需要同时安装这两个小版本,我建议你把2.5.4完全放在路径之外,或者让它完全覆盖掉另一个版本(不过这样做有风险哦;)如果你选择前者,你还可以通过设置PYTHONPATH环境变量来让2.5.4指向你的site-packages目录。

Ubuntu的处理方式不同,这里是如何处理不同主要版本的方法。Python的可执行文件会在版本后面加上版本号:

/usr/bin/python -> python2.6
/usr/bin/python2.5
/usr/bin/python2.6

每个版本都有自己的/usr/lib/python2.X目录,里面存放着所有模块的版本。

最后,你还可以通过修改你的site.py来进一步自定义你的设置。

撰写回答