过渡Python2.4Python2.6率。模块的迁移问题
-
22-08-2019 - |
题
嘿,伙计们,我有一个问题的升级蟒蛇从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路径,其中它的依赖生活。所以,每一个项目,我已经基本上有它自己的一套库。它变得更容易的方式。
其他提示
有几个选择...
如果该模块将运行在Python2.6,你可以简单地创建符号连接到他们从2.6网站-包录到2.4网站-包装目录。
如果他们不会跑下2.6,然后你可能需要重新编译他们对2.6,或安装最新版本。只是确保你被使用2.6打电话时
"python setup.py"
...
你可能希望以后的这个上serverfault.com如果你遇到额外的挑战。
一些Python库可以是静止作为与Python 2.6 site-packages
不可访问被改变到dist-packages
。
在这种情况下,唯一的方法是做在移动站点包产生(例如,通过make install
)所有东西到dist-包并创建对称 - 链路。
执行是一个良好的但是低水平的方式安装模块,只是:
- 解开源模块的一些目录
- 类型"蟒蛇setup.py 安装"
你当然应该这样做有需要安装蟒蛇的口译版本;检查它类型:
蟒蛇-V