当我为Python项目创建virtualenv时,为方便起见,安装的软件包(例如iPython或我的编辑器“ VS Code”依赖的其他软件包,例如“ pylint”)会污染它。
但是这些软件包与我的项目无关。因此,如果我做pip freeze > requirements.txt
,就会发现只有几个软件包与我的项目相关。
清理的最佳方法是什么?
pip freeze > requirements.txt
,然后编辑需求文件并删除不需要的软件包吗?答案 0 :(得分:4)
我们在这里做什么:
首先,我们有项目的需求文件-用于部署的文件。这不是使用pip冻结构建的,而是手动编辑的,因此它仅包含相关软件包。
然后,我们有了“ dev”需求文件,其中的软件包仅对开发有用,但在项目上需要使用(lint,附加测试材料等)。
最后,每个人都可以自由维护自己的个人其他要求(与编辑器相关的软件包等)。
请注意,使用virtualenvwrapper(对开发安装确实有帮助),您定义了在创建新的虚拟环境时将安装软件包的挂钩。
答案 1 :(得分:1)
Here是手动准备requirements.txt
的替代解决方案。
我上面提到的项目准备了requirements.txt
基于您在项目的Python文件中执行的导入的项目。
假设myproject
中的所有Python文件都在终端中完成:
$ pip install pipreqs
$ pipreqs myproject
将为您生成一个requirements.txt
文件。
这样,您将只能在虚拟环境中pip install -r requirements.txt
而不是pip freeze > requirement.txt
,因为您将只有与项目相关的软件包。