python - pip 没有从 requirements.txt 安装包,而是从命令安装包
问题描述
我有两个与要求相关的文件。调用时出现此错误:
$ pip install -r requirements.txt --no-index --find-links file:///tmp/packages
错误:
Looking in links: file:///tmp/packages
Requirement already satisfied: asgiref==3.2.3 in d:\virtual_envs\scolarte\lib\site-packages (from -r requirements-dev.txt (line 1)) (3.2.3)
Collecting boto3==1.12.0 (from -r requirements-dev.txt (line 2))
Url 'file:///tmp/packages' is ignored: it is neither a file nor a directory.
Could not find a version that satisfies the requirement boto3==1.12.0 (from -r requirements-dev.txt (line 2)) (from versions: )
No matching distribution found for boto3==1.12.0 (from -r requirements-dev.txt (line 2))
但是调用时安装的包:
pip install boto3==1.12.0
为什么?
a) 要求.txt:
-r requirements-dev.txt
gunicorn
psycopg2
b) 需求-dev.txt
asgiref==3.2.3
boto3==1.12.0
botocore==1.14.16
defusedxml==0.6.0
diff-match-patch==20181111
dj-database-url==0.5.0
dj-static==0.0.6
Django==3.0.3
django-crispy-forms==1.8.1
django-import-export==2.0.1
django-sendgrid-v5==0.8.1
django-storages==1.9.1
djangorestframework==3.11.0
docutils==0.15.2
et-xmlfile==1.0.1
future==0.18.2
jdcal==1.4.1
jmespath==0.9.4
MarkupPy==1.14
numpy==1.18.1
odfpy==1.4.1
openpyxl==3.0.3
pandas==0.25.3
Pillow==7.0.0
python-dateutil==2.8.1
python-decouple==3.3
python-http-client==3.2.4
pytz==2019.3
PyYAML==5.3
s3transfer==0.3.3
sendgrid==6.1.1
six==1.14.0
sqlparse==0.3.0
static3==0.7.0
tablib==0.14.0
urllib3==1.25.8
xlrd==1.2.0
xlwt==1.3.0
解决方案
当您使用
pip install boto3==1.12.0
您正在从PyPI (The Python Package Index)安装。而通过使用--no-index
选项
pip install -r requirements.txt --no-index --find-links file:///tmp/packages
您明确告诉pip
不要在 PyPI 中查找它。
形成PyPI 文档
--无索引
忽略包索引(只查看 --find-links URL)。
-f,--查找链接
<url>
如果是 html 文件的 url 或路径,则解析指向档案的链接。如果本地路径或 file:// url 是目录,则在目录列表中查找存档。
还有关于pip 如何查找包(强调我的)
pip 在多个位置查找包:在 PyPI(如果未通过 --no-index 禁用)、本地文件系统以及通过 --find-links 或 --index-url 指定的任何其他存储库中。搜索的位置没有排序。相反,它们都被检查,并选择了需求的“最佳”匹配(就版本号而言 - 参见 PEP 440 了解详细信息)。
推荐阅读
- rest - REST 文件下载需要 5 分钟才能完成
- c# - 为 Xamarin.Forms 中的按钮选择处理程序或命令的最佳实践
- stored-procedures - 我可以在 Redshift 上的存储过程中将两个查询连接在一起吗?
- swift - 如何在 iOS 9.3 的 Xcode 10.2.1 中存储颜色标签
- git - 无法将新更改从本地 repo 推送到远程 github
- ssl - 使用 WebSockets 固定证书
- java - 无法连接到 gmail 商店 javax 邮件 api
- android - 如何在 Android 应用程序中将应用程序置于前台?
- dialogflow-es - 可以给基于 DialogFlow 的聊天机器人起一个名字
- python - 如何将原始字符串转换为`bs4.element.Tag`