如何创建需求。

问题描述 投票:0回答:6
requirement.txt

现在我的

asgiref==3.2.3
beautifulsoup4==4.8.2
certifi==2019.11.28
chardet==3.0.4
Click==7.0
Django==3.0.2
idna==2.8
pytz==2019.3
requests==2.22.0
six==1.14.0
soupsieve==1.9.5
sqlparse==0.3.0
urllib3==1.25.7

包含以下软件包列表:

sed

我只想要包装名称,因此Pip3始终安装最新版本。

python pip virtualenv
6个回答
9
投票
使用

requirements.txt

从您的文件中删除版本信息。
例如
sed 's/==.*$//' requirements.txt
将给出输出

asgiref beautifulsoup4 certifi chardet Click Django idna pytz requests six soupsieve sqlparse urllib3
可以将其输送到

pip

进行安装
sed 's/==.*$//' requirements.txt | xargs pip install


您可以用Python本身解析
requirements.txt
文件,并获取您的软件包名称并手动将其分开如下:

8
投票
with open("requirements.txt") as myFile: pkgs = myFile.read() pkgs = pkgs.splitlines() for pkg in pkgs: print(pkg.split('==')[0])

这将为您提供以下类似的东西:

enter image description here评估如果您几个月前在Django 2.x上编写了应用程序,并且只是在您的Django

中列出了

4
投票
。现在,django 3已经熄灭了,现在安装它将导致一个主要版本从django 2跳到3,并且有利于打破一半的应用程序。这只是您的依赖性。

没有,版本是故意固定的。升级版本应该是一项有意识的努力,涉及测试以确认兼容性。您想以一个已知的良好状态运行软件,而不是在不可预测的状态下运行。版本不兼容不应被低估。 PIP可以轻松地为您提供所有过时的依赖项列表,而升级它们只是另一个命令。 
Anecdote时间:
openpyxl
最近在3.0.1版本中包含一个bug,它打破了我们的应用程序中的重要功能。您知道为什么我们会受到它的影响吗?因为我们的requirements.txt使用固定的版本,因此我通过在手动升级依赖项时进行单元测试来找到问题,并因此选择升级openpyxl。没有固定的版本,我们的应用程序将被打破几周,而OpenPyxl 3.0.1是最新版本。

更改您的要求。 asgiref beautifulsoup4 certifi chardet Click Django idna pytz requests six soupsieve sqlparse urllib3 您也可以查看这个问题。从这个问题中,我取了一个答案,我认为可以解决您的问题。它不会删除软件包版本,但是只要您安装需求emnemwnts.txt,它就会将您的软件包升级到最新版本。

pip install pip-upgrader 激活您的Virtualenv(重要,因为它还将在当前Virtualenv中安装新版本的升级软件包)。 cd进入您的项目目录,然后运行:

pip-upgrade
如果要求放置在非标准位置,请将其作为参数发送:


2
投票
pip-upgrade path/to/requirements.txt

如果您已经知道要升级的软件包,只需将它们发送为参数:

1
投票
pip-upgrade -p django -p celery -p dateutil

您需要更改

requirement.txt
文件以删除所有版本的依赖项。您可以为此解析文件。或使用Regex.

==\w+.+.+

this将在符号之后选择所有元素==包括符号。

带有空字符串的重新放置。

在某些支持正则表达式的编辑器(例如VS Code)中键入要求。
使用查找和替换。 (VS代码中的Ctrl + F)

选择REGEX选项。 (在VS代码中查找并替换上下文菜单中单击

.*

在找到put

==\w+.+.+

替换一无所有。 (保持空)

然后替换全部

然后,你很高兴。
    


1
投票
pip install requirements.txt


-mode

-no-pinth

-mode
选项。

示例:

pip list --format=freeze | cut -d'=' -f1 > requirements.txt

© www.soinside.com 2019 - 2025. All rights reserved.