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始终安装最新版本。
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
文件,并获取您的软件包名称并手动将其分开如下:with open("requirements.txt") as myFile:
pkgs = myFile.read()
pkgs = pkgs.splitlines()
for pkg in pkgs:
print(pkg.split('==')[0])
这将为您提供以下类似的东西:中列出了
没有,版本是故意固定的。升级版本应该是一项有意识的努力,涉及测试以确认兼容性。您想以一个已知的良好状态运行软件,而不是在不可预测的状态下运行。版本不兼容不应被低估。 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
如果要求放置在非标准位置,请将其作为参数发送:
pip-upgrade path/to/requirements.txt
如果您已经知道要升级的软件包,只需将它们发送为参数:
pip install requirements.txt
-mode
-no-pinth
-mode选项。 示例:
pip list --format=freeze | cut -d'=' -f1 > requirements.txt