如何在virtualenv中使用pip安装软件包时如何跟踪软件包?
现在好像很乱;如果我安装包A,它会自动安装其依赖; B,C和D.然后我决定使用包N来安装其依赖性。现在,当我删除包A时,其依赖性不会自动删除。
如何保持我的virtualenv干净?是否有工具检查未使用的包并将其删除?
答案 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
...等