我已经重新安装了我的操作系统(从 Windows XP 移动到 Windows 7)。 我已经重新安装了 Python 2.7。
但是我在我的旧环境中安装了很多包。 (Django、sciPy、jinja2、matplotlib、numpy、networkx,仅举一个 View )
我的旧 Python 安装仍然位于数据分区上,所以我想知道是否可以将旧 Python 库文件夹复制粘贴到新安装上? 还是我需要重新安装每个软件包?
包是否在注册表、系统变量或类似的地方保留任何信息?
是否依赖于包?
最佳答案
这就是您必须能够对项目进行布局的关键点,因此需要专门的工具。
通常,Python 包不会做处理注册表这样奇怪的事情(除非它们是通过 MSI 安装程序打包的)。问题可能始于包含 C 扩展的包,因此移动到另一个版本的操作系统或从 32 位架构到 64 位架构将需要重新编译/重建这些。因此,最好将所有软件包重新安装到新系统,如下所示。
您的需求可能会有所不同,但您绝对必须选择构建环境的方式。如果您没有并且计划拥有大量不同的项目,您可以考虑下面的第一种方法,第二种方法更有可能为不同的项目或同一项目的不同版本设置开发环境。
全局环境(您系统中的 Python 安装以及已安装的软件包)。
这里可以考虑使用pip .在这种情况下,您的项目可以有 requirements包含项目所需所有包的文件。基本上,需求文件是一个包含包名称的文本文件(在 PyPI 及其版本上)。
隔离环境。它可以使用特殊工具或专门组织的路径来实现。
在这里 pip 可以与 virtualenv 优雅地结合.这种方式被很多开发人员强烈推荐(我必须提醒一下,即将发布的 Python 3.3 包含 virtualenv 作为标准库的一部分)。这种方法假设使用自己的 Python 解释器实例和已安装的包创建虚拟 shell。
另一种用于实现隔离环境的流行工具称为构建。它将你的项目源代码和依赖项放在一个路径中,这样你就可以获得与 virtualenv 创建的相同的效果。 buildout 的巨大优势在于它建立在可插入配方(实现不同常见项目部署任务的代码片段)的思想之上,并且在 Internet 上有数百个稳定可靠的配方。
virtualenv 和 buildout 都可以帮助你解决安装依赖时的头痛问题,解决同一个包在一台机器上的不同版本的问题。
选择你的命运......
关于python - 将 Python 环境移至新的操作系统安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12167261/