Python:与项目无关的软件包

时间:2018-09-05 11:47:06

标签: python

当我为Python项目创建virtualenv时,为方便起见,安装的软件包(例如iPython或我的编辑器“ VS Code”依赖的其他软件包,例如“ pylint”)会污染它。

但是这些软件包与我的项目无关。因此,如果我做pip freeze > requirements.txt,就会发现只有几个软件包与我的项目相关。

清理的最佳方法是什么?

  • 在全局环境中安装这些软件包,以便可以在开始的每个项目中使用它们?或
  • 执行pip freeze > requirements.txt,然后编辑需求文件并删除不需要的软件包吗?

2 个答案:

答案 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,因为您将只有与项目相关的软件包。