【问题标题】:What's the proper way to update Python packages when updating Python from 2.6 to 2.7?将 Python 从 2.6 更新到 2.7 时,更新 Python 包的正确方法是什么?
【发布时间】:2012-07-24 02:38:23
【问题描述】:

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

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

一个明显的方法是安装Python 2.7,下载所有的包源或egg文件,然后一一重新安装。但是,一些有用的软件包,如 numpy 和 scipy,在安装方面是臭名昭著的,尤其是当需要从源代码安装时。我预计我需要花费几个小时来查找软件包并解决这里和那里的安装问题。

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

【问题讨论】:

    标签: python package egg


    【解决方案1】:

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

    http://jamiecurle.co.uk/blog/installing-pip-virtualenv-and-virtualenvwrapper-on-os-x/#comment-573429347

    正确的过程是使您的安装过程可重复。 Python 世界中存在两种常用的解决方案。这些解决方案会自动从http://pypi.python.org下载正确版本的 Python 包

    画中画

    pip 和 requirements.txt http://www.pip-installer.org/en/latest/requirements.html 内 virtualenv http://pypi.python.org/pypi/virtualenv

    外卖

    Buildout,来自 Plone CMS https://github.com/plone/Installers-UnifiedInstaller/blob/master/base_skeleton/versions.cfg的示例

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

    http://pypi.python.org/pypi/z3c.recipe.staticlxml/

    (注意:buildout 不需要 virtualenv,因为它自己与系统 Python 隔离)

    【讨论】:

    • 实际上,基于 Fedora 的发行版传统上在为不同版本分离软件包方面做得非常好。大多数问题都在于发行版将其全部放入一个目录并让各种 Python 版本争夺霸权。
    • 在我看来 pip 并不能完全解决原来的问题。尽管 pip 可能解决了依赖问题并使安装过程可重复,但升级到 2.7(或任何更新版本)仍需要手动“pip install”所有在 2.6(或任何旧版本)中安装的包。跨度>
    • 是的,但是如果您的 requirements.txt 是为仅运行一个 pip install 命令的应用程序维护的。还是我错过了什么?当然,如果你脑子里没有依赖信息,那么你需要手动重新安装所有包。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-08
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    相关资源
    最近更新 更多