Pip冻结仅用于项目要求

时间:2015-09-04 04:49:33

标签: python pip

当我运行pip freeze > requirements.txt时,似乎包含了所有已安装的软件包。 出现是记录在案的行为。

但是,我做错了,因为现在包含了Django等与Django无业务的项目。

如何获得此项目的要求?或者将来如何安装包含pip的软件包以用于此项目。我想我错过了virtualenv

6 个答案:

答案 0 :(得分:37)

pipreqs可以节省特定项目的日期。 只是

pip(3) install pipreqs
#then
pipreqs path/to/project

See more from here

答案 1 :(得分:4)

我同时尝试了pipreqspigar,发现pigar更好,因为它还生成有关使用位置的信息,并且还有更多选择。

答案 2 :(得分:3)

我使用此命令

pip freeze -r requirements.txt | grep -B100 "pip freeze" | grep -v "pip freeze"

当我运行pip freeze -r requirements.txt时,输出类似于

APScheduler==3.2.0
Eve==0.6.4
Eve-Elastic==0.3.8
## The following requirements were added by pip freeze:
arrow==0.8.0
Cerberus==0.9.2

我有一个像这样的需求文件

APScheduler
Eve
Eve-Elastic

所以我得到了这个输出,并grep删除了我不想要的依赖项。

首先将其输出到文件

pip freeze -q -r requirements.txt | grep -B100 "pip freeze" | grep -v "pip freeze" > requirements-froze.txt 

这将仅输出版本为

的库
APScheduler==3.2.0
Eve==0.6.4
Eve-Elastic==0.3.8

然后替换需求文件

mv requirements.txt requirements.txt 

答案 3 :(得分:1)

这是基于之前评论的简化版本:https://stackoverflow.com/a/40026169/4052041

mv requirements.txt requirements.txt.bak
pip freeze -q -r requirements.txt.bak | awk '/.*pip freeze.*/  {exit} {print}' > requirements.txt

答案 4 :(得分:0)

如果您使用的是Linux,请使用 sed

// vscode and my cmd project-name/cd android && ./gradlew signingReport // other project-name/cd android && ./gradlew signingReport

答案 5 :(得分:0)

我在使用 pip freeze 时遇到了同样的问题。就我而言,问题是我在没有激活项目虚拟环境的情况下运行了 pip freeze。我激活了虚拟环境,pip freeze > requirements.txt 运行良好。

因此请确保通过在 Windows 上运行 <virtualenv folder name>\Scipts\activate 或在 Linux 上运行 source <virtualenv folder name>\bin\activate 来激活您的项目虚拟环境。

如果 virtualenv 可以访问全局访问,您应该使用 pip freeze-l 选项运行 --localpip freeze -l 根据 {{ 3}}

<块引用>

-l, --local
如果在具有全局访问权限的virtualenv中,不要输出全局安装的包。