Virtualenv - 清理未使用的包安装

时间:2015-11-08 20:40:59

标签: django virtualenv

所以我在过去几个月里一直在开发我的第一个django Web应用程序,我已经安装了许多我想尝试用来解决我的一些问题的软件包。但是,我安装的一些软件包尝试使用,失败,然后从未卸载过。

有没有办法从“pip freeze”给出的列表中查看我的应用程序正在使用哪些包?

这样我可以在我的应用程序中卸载一些混乱。这种混乱是否是一个巨大的劣势?

在未来的开发中,如果我不使用它,我会立即卸载软件包。所以吸取了教训:)。

2 个答案:

答案 0 :(得分:3)

我使用的方法是我的requirements.txt文件。从我的Django项目的根目录开始,我创建了一个requirements/目录,其中包含以下文件:

requirements/
    base.txt
    dev.txt
    prod.txt
    temp.txt

base.txt包含要在所有环境中使用的包,例如Django==1.8.6

然后dev会包含基本包和其他包,可能看起来像:

-r base.txt
coverage==4.0.2

然后temp.txt包含dev.txt并包含我不确定我会永久使用的套餐:

-r dev.txt
temp_package==1.0
git+https://github.com/django/django.git#1014ba026e879e56e0f265a8d9f54e6f39843348

然后我可以吹走整个virtualenv并从相应的需求文件中重新安装它,如下所示:

pip install -r requirements/dev.txt

或者,包括我测试的temp_package:

pip install -r requirements/temp.txt

这就是我如何做到的,它有助于保持我的沙盒与成品分开。

答案 1 :(得分:0)

可能您可以使用isort并运行isort myproject/* --diff来获取isort将对您的项目进行的建议更改列表。

在建议的更改中,它列出了未使用的导入。从那里,您可以查看虚拟环境中安装的软件包,然后开始使用pip删除它们。这假设你没有删除import语句,可能不是这种情况。

另一种方法是创建一个新的env并尝试运行你的应用程序。在应用运行之前,使用错误消息获取所需的包。不漂亮,但它会起作用。