首先,这是您要使用pip
而不是easy_install
. (你仍然需要easy_install
得到pip
它自己,但除此之外,不要再碰它了。)如果你使用过pip
,你可以这样做:
pip freeze > modules.dump
这为您提供了已安装的所有模块的列表及其版本号。大多数情况下,您只需获取模块列表 ( line.split('==')[0] for line in f
) 并将其传递给pip install
.
但那是为了将来参考。今天,您必须通过查看您的site-packages
目录自己拼凑起来。幸运的是,很多东西最终都会foo_bar-1.2.3.4-blah-blah.egg
以 . 所以,你不能完全自动化它,但你可以接近。foo-bar
foo_bar
easy_install
pip
但是,是的,不管你怎么做,你都需要重新安装。任何需要 C 扩展代码的东西都必须重新编译。纯 Python 包可能不需要更改,但它们可能需要更改,而且您总比抱歉更安全。此外,如果您尝试复制某些内容而不复制其他内容,那么您的依赖关系将会变得一团糟。
(1) 如果一个包安装在 Python 2.6 包目录中,将其导入到较新的 Python(如 Python 2.7)的 PYTHONPATH 是否合法,或者必须使用 Python 2.7 重新安装所有包?
不要那样做;如上所述,重新安装它们。
(2) 如果我使用easy_install,如何告诉它使用较新的Python?例如 2.7 而不是 2.6?还是我应该使用 Python 2.7 重新安装 easy_install 来执行此操作?谢谢。
你需要 2.7 easy_install
。您通常可以easy_install
通过运行来使用 2.7 和 2.6,例如,python2.6 $(which easy_install)
但不保证反过来也能正常工作。
而且你无论如何都不想这样做。如果你想要两个版本的 Python 并行,你想要两个版本的 -easy_install
通常你想以easy_install-2.6
and结尾easy_install-2.7
,easy_install
作为你认为你的“主要”python 的任何一个的符号链接。