如何备份已安装的Python依赖或模块

8 投票
2 回答
9856 浏览
提问于 2025-04-16 18:53

我在我的CentOS系统上安装了很多Python模块、插件和库。现在我不想在不同的电脑上每次都重新安装这些东西。

有没有什么办法可以把这些打包成像rpm这样的文件,或者其他什么形式,这样当我在新地方安装的时候,所有的模块和依赖项也能一起安装?而且每次我安装新东西的时候,还可以更新这个安装包。

2 个回答

1

如果你没有使用Pip,那么你需要检查一下你在全局和/或用户的 site-packages 目录里有哪些包。

下面的解决方案来自于:
我怎么找到我的Python site-packages目录的位置?

全局的包:

python -m site

或者更简洁一点:

python -c "import site; print(site.getsitepackages())"

用户的包:

python -m site --user-site

不过,这些方法并不能显示当前虚拟环境的site-packages——要查看这个,你可以使用 distutils.sysconfig.get_python_lib()

python -c "from distutils.sysconfig import get_python_lib;
print get_python_lib()"

注意!
你不能仅仅把包含C++扩展或其他编译过的二进制文件的包直接复制到其他机器上。这些包必须在其他机器上重新安装。

10

如果你是通过 pip(一个比 easy_install 更好用的工具)来安装软件包的,你可以直接输入 pip freeze > my-reqs.txt 来获取你安装的软件包及其版本的列表。此外,还有一种方法可以通过这个列表文件来安装软件包:

pip install -r my-reqs.txt

Pip 是为了配合 virtualenv 使用的,后者可以帮助你管理每个项目所需的依赖包。

撰写回答