嘿,伙计们,我有一个问题的升级蟒蛇从2.4至2.6:

我CentOS5(完)
它有python2.4居住在/usr/lib/python2.4/
附加的模块居住在/usr/lib/python2.4/网站-包/

我已经建立python2.6从来源处/usr/local/lib/python2.6/
我已经默认python python2.6
现在旧模块,为2.4出的pythonpath和都是"迷失"
特别是,yum被破坏("没有模块名为胜")

那么,什么是正确的方式进行迁移/安装模块python2.6?

有帮助吗?

解决方案

他们不破,他们只是没有安装。该解决方案是将它们安装2.6下。但首先我们应该看到,如果你真的应该做的......

是,Python会安装(除非你用--alt安装运行它)取代蟒蛇命令来安装的版本时。你不正好说明你的问题是什么,所以我要去猜测。你的问题是,使用Python许多本地命令现在失败了,因为他们得到与Python 2.6执行,而不是与Python 2.4。这是否正确?

如果是这样的话,那么只需删除在/ usr / local / bin目录/蟒蛇,并确保在/ usr / bin中/ python就是一个符号链接/usr/bin/python2.4。然后,你将不得不键入python2.6的运行python2,6,但没关系。这是做到这一点的最好办法。然后,你只需要安装的软件包您2.6 需求。

但是,如果我的猜测是错误的,并且你确实需要安装2.6在所有那些包装,再不用担心太多。首先,安装setuptools。它包括一个easy_install的脚本,然后可以安装的模块

easy_install <modulename>

有将下载从pypi.python.org模块并安装它。它也将安装任何模块,是一个依赖。使用easy_install可以安装使用的distutils作为一个安装任何模块,并没有太多的没有。这将使得安装90%这些模块中的一件轻而易举的。

如果该模块具有C成分,它会编译它,然后你需要的库头太,这将是更多的工作,而你所能做的有安装它们的标准CentOS的方式。

您不应该使用版本之间的符号链接,因为图书馆一般是针对特定版本。对于2.4和2.6我认为pyc文件是兼容的(但我不是100%确定),这样可以工作,但任何模块谁使用了C的的突破。和Python的其他版本将有不兼容的pyc文件也是如此。而且我敢肯定,如果你这样做,最Python的人都不会帮你,如果你做到这一点。 ; - )

在一般情况下,我尝试过保持系统蟒蛇“干净”,即我什么也不安装有不与包装工具安装。相反,我使用的virtualenv或扩建,让每一个应用都有自己的python路径,其中它的依赖生活。所以,每一个项目,我已经基本上有它自己的一套库。它变得更容易的方式。

其他提示

有几个选择...

  1. 如果该模块将运行在Python2.6,你可以简单地创建符号连接到他们从2.6网站-包录到2.4网站-包装目录。

  2. 如果他们不会跑下2.6,然后你可能需要重新编译他们对2.6,或安装最新版本。只是确保你被使用2.6打电话时 "python setup.py"

...

你可能希望以后的这个上serverfault.com如果你遇到额外的挑战。

一些Python库可以是静止作为与Python 2.6 site-packages不可访问被改变到dist-packages

在这种情况下,唯一的方法是做在移动站点包产生(例如,通过make install)所有东西到dist-包并创建对称 - 链路。

执行是一个良好的但是低水平的方式安装模块,只是:

  1. 解开源模块的一些目录
  2. 类型"蟒蛇setup.py 安装"

你当然应该这样做有需要安装蟒蛇的口译版本;检查它类型:

蟒蛇-V

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top