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

Ada*_*ver 6 python pip virtualenv

当我在virtualenv中使用pip安装它们时,如何跟踪包?

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

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

我怎么能保持我的virtualenv清洁?是否有工具检查未使用的包并将其删除?

Fou*_*ine 13

删除一个包:

pip uninstall package_name
Run Code Online (Sandbox Code Playgroud)

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

pip show package_name
Run Code Online (Sandbox Code Playgroud)

这将向您显示运行所需的包,以及需要您的包才能运行的包。

所以卸载一个包及其所有依赖包的最佳方式是先运行pip show package_name查看其依赖包列表,然后将其连同其依赖包一一卸载。例如:

pip show package_name
pip uninstall package_name
pip uninstall dependency_package_1
pip uninstall dependency_package_2
Run Code Online (Sandbox Code Playgroud)

...等等


Mat*_*ohm 9

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

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


alk*_*lko 5

要获得干净的环境,请创建一个新环境.一些pip钩子可以帮助你在这条道路上:

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