python - 如何使用 pip 要求文件来卸载和安装软件包?

标签 python pip

我有一个在开发过程中发生变化的 pip 需求文件。

可以pip卸载 没有出现在需求文件中的包以及安装那些出现的包吗?有标准方法吗?

这将允许 pip 要求文件成为包的规范列表 - 一种“当且仅当”的方法。

更新:我在 https://github.com/pypa/pip/issues/716 建议将其作为新功能

最佳答案

这应该卸载任何不在 requirements.txt 中的内容:

pip freeze | grep -v -f requirements.txt - | grep -v '^#' | xargs pip uninstall -y

虽然这不适用于使用 -e 安装的软件包,即来自 git 存储库或类似存储库。要跳过这些,只需过滤掉以 -e 标志开头的包:

pip freeze | grep -v -f requirements.txt - | grep -v '^#' | grep -v '^-e ' | xargs pip uninstall -y

那么,显然:

pip install -r requirements.txt

2016 年更新: 不过,您可能并不想真正使用上述方法。 Check out pip-tools and pip-sync它以更强大的方式完成您可能希望做的事情。

https://github.com/nvie/pip-tools

2016 年 5 月更新:

您现在也可以使用 pip uninstall -r requirements.txt,但这基本上相反 - 它会卸载 requirements.txt

中的所有内容

2019 年 5 月更新:

查看 pipenvPoetry .包管理领域发生了很多事情,使得这类问题有 pip 过时了。不过,我实际上仍然很乐意使用 pip-tools。

关于python - 如何使用 pip 要求文件来卸载和安装软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13176968/

相关文章:

Python:将列中的 "NA"替换为另一列的相应行值中的值(反之亦然)

python - 在 ubuntu 14.04 上安装 tkinter

python - 测试python中是否存在互联网连接

python - 找不到满足 pytz 要求的版本

python - 停止 pip 安装已经使用 apt-get 安装的依赖项

python - Virtualenv 没有检测到 pip3

python - pandas groupby apply 返回数据框

python - 以编程方式刷新 PATH 中的环境变量引用 (Windows 10)

pip - 使用 pip 安装 Python OSC

python - 我在 Ubuntu 12.10 上搞砸了 Python Pip 的系统版本