如何从virtualenv中删除未使用的包?

时间:2013-10-26 16:28:11

标签: python virtualenv pip

如何在virtualenv中使用pip安装软件包时如何跟踪软件包?

现在好像很乱;如果我安装包A,它会自动安装其依赖; B,C和D.然后我决定使用包N来安装其依赖性。

现在,当我删除包A时,其依赖性不会自动删除。

如何保持我的virtualenv干净?是否有工具检查未使用的包并将其删除?

4 个答案:

答案 0 :(得分:8)

制作virtualenvs相对便宜。每当遇到这种情况并再次运行pip安装时,你就可以创建一个新的virtualenv。

不是很优雅,但它完成了工作。当然你需要为pip安装维护一些需求文件,如果你有一些pip的本地索引或缓存,它会更快。

答案 1 :(得分:5)

要获得干净的环境,请创建一个新环境。一些点钩可以帮助你走这条路:

  • pip freeze获取已安装软件包及其版本的列表,稍后可与
  • 一起使用
  • -r <file>安装需求文件中所述的软件包列表
  • --build <dir>将构建版本放在特定目录中
  • --no-clean不清理构建目录
  • 稍后您可以将这些版本与--no-download
  • 一起使用
  • --no-deps不安装依赖项

答案 2 :(得分:2)

替代方法是在“setup.py”或“requirements.txt”中命名项目的每个依赖项。使用virtualenv多次练习setup.py或pip install cat requirements.txt,以便成功运行您的应用程序。之后,手动将新依赖项添加到其中一个文件中,以使您的依赖项保持同步。

答案 3 :(得分:0)

要删除软件包:

pip uninstall package_name

要获取任何给定软件包所需的软件包列表(使用pip):

pip show package_name

这将向您显示其运行所需的软件包,以及需要它们才能运行的软件包。

因此,卸载带有所有依赖包的软件包的最佳方法是首先运行pip show package_name以查看其依赖包的列表,然后逐个卸载它及其依赖包。例如:

pip show package_name
pip uninstall package_name
pip uninstall dependency_package_1
pip uninstall dependency_package_2

...等