所以我在过去几个月里一直在开发我的第一个django Web应用程序,我已经安装了许多我想尝试用来解决我的一些问题的软件包。但是,我安装的一些软件包尝试使用,失败,然后从未卸载过。
有没有办法从“pip freeze”给出的列表中查看我的应用程序正在使用哪些包?
这样我可以在我的应用程序中卸载一些混乱。这种混乱是否是一个巨大的劣势?
在未来的开发中,如果我不使用它,我会立即卸载软件包。所以吸取了教训:)。
答案 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并尝试运行你的应用程序。在应用运行之前,使用错误消息获取所需的包。不漂亮,但它会起作用。