Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
什么';在将Python从2.6更新到2.7时,更新Python包的正确方法是什么?_Python_Package_Egg - Fatal编程技术网

什么';在将Python从2.6更新到2.7时,更新Python包的正确方法是什么?

什么';在将Python从2.6更新到2.7时,更新Python包的正确方法是什么?,python,package,egg,Python,Package,Egg,我已经为Python2.6安装了很多python包。现在我想将Python升级到2.7。是否有适当或系统的方法来更新所有已安装的软件包 在我的系统中,所有软件包都安装在 /usr/lib64/python2.6/site-packages/和 /usr/lib/python2.6/site-packages/ 一个明显的方法是安装Python2.7,下载所有包源代码或egg文件,然后逐个重新安装。然而,一些有用的软件包,如numpy和scipy,在安装方面是臭名昭著的,特别是当需要从源代码安装时

我已经为Python2.6安装了很多python包。现在我想将Python升级到2.7。是否有适当或系统的方法来更新所有已安装的软件包

在我的系统中,所有软件包都安装在 /usr/lib64/python2.6/site-packages/和 /usr/lib/python2.6/site-packages/

一个明显的方法是安装Python2.7,下载所有包源代码或egg文件,然后逐个重新安装。然而,一些有用的软件包,如numpy和scipy,在安装方面是臭名昭著的,特别是当需要从源代码安装时。我希望我需要花几个小时来找到软件包,解决安装问题


有人对系统更新安装的软件包有什么建议吗

首先,您不应该在任何操作系统上使用sudo在系统库文件夹中安装Python包

正确的步骤是使安装过程可重复。Python世界中存在两种常用的解决方案。这些解决方案会自动从下载正确版本的Python包

PIP

virtualenv中的pip和requirements.txt

Buidout

构建,来自Plone CMS的示例

Buildout还可以为需要本机库的软件包进行配置、制作、制作安装样式的安装。例如,存在libxml2+lxml的解决方案


(注意:buildout不需要virtualenv,因为它本身与系统Python是隔离的)

实际上,基于Fedora的发行版在为不同版本分离软件包方面做得非常好;大多数问题都是发行版将所有内容都放在一个目录中,让不同的Python版本争霸。在我看来,pip无法完全解决最初的问题。即使pip可能会解决依赖性问题并使安装过程可重复,但升级到2.7(或任何较新版本)仍需要手动“pip安装”2.6(或任何较旧版本)中安装的所有软件包。是,但是如果为只运行一个pip安装命令的应用程序维护requirements.txt。还是我遗漏了什么?当然,如果您的头脑中没有依赖信息,那么您需要手动重新安装所有软件包。