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