【问题标题】:ERROR RUN pip install -r requirements.txt when using docker-compose up使用 docker-compose up 时出现错误 RUN pip install -r requirements.txt
【发布时间】:2022-02-21 02:29:21
【问题描述】:

我应该如何创建和安装 requirements.txt 文件以便在运行 docker-compose up 时能够正确读取它?

使用通过pip freeze > requirements.txt 创建的 requirements.txt 运行 docker-compose up 时出现问题

requirements.txt:

certifi==2021.5.30
charset-normalizer==2.0.3
Django==2.2.5
django-cors-headers==3.7.0
django-rest-framework==0.1.0
djangorestframework==3.12.4
idna==3.2
psycopg2 @ file:///C:/ci/psycopg2_1612298715048/work
python-decouple==3.4
pytz @ file:///tmp/build/80754af9/pytz_1612215392582/work
requests==2.26.0
sqlparse @ file:///tmp/build/80754af9/sqlparse_1602184451250/work
urllib3==1.26.6
wincertstore==0.2

我使用 anaconda 和 pip 来安装包

我的应用程序后端的 Dockerfile 尝试 RUN pip install -r requirements.txt 出现以下错误。我可以感觉到 @ 包出现错误,但对我来说最奇怪的是第一个(#17 1.299),因为它似乎只关注 python-decouple==3.4。

=> ERROR [... 4/5] RUN pip install -r requirements.txt                                 1.8s 
------
> [... 4/5] RUN pip install -r requirements.txt:
#17 1.299 DEPRECATION: Python 3.4 support has been deprecated. pip 19.1 will be the last one supporting it. Please upgrade your Python as Python 3.4 won't be maintained after March 2019 (cf PEP 429).
#17 1.345 Collecting certifi==2021.5.30 (from -r requirements.txt (line 1))
#17 1.515 Collecting charset-normalizer==2.0.3 (from -r requirements.txt (line 2))
#17 1.541   Could not find a version that satisfies the requirement charset-normalizer==2.0.3 (from -r requirements.txt (line 2)) (from versions: 0.1a0, 0.1.1a0, 0.1.4b0, 0.1.5b0, 0.1.7, 0.1.8, 0.2.0, 0.2.1, 0.2.2, 0.2.3)
#17 1.544 No matching distribution found for charset-normalizer==2.0.3 (from -r requirements.txt (line 2))
#17 1.708 You are using pip version 19.0.3, however version 19.1.1 is available.
#17 1.708 You should consider upgrading via the 'pip install --upgrade pip' command.```

【问题讨论】:

    标签: django docker docker-compose requirements.txt


    【解决方案1】:

    TL;DR

    将 requirements.txt 中的 charset-normalizer==2.0.3 替换为 chardet>=3.0.2,<5;。您也可以选择一些特定版本来锁定版本。


    我最近不得不建立一个旧的仓库,遇到了类似的问题

    charset-normalizer 是通过不再可能的请求安装的,但要探索它以前为什么/如何工作!

    但是如果你检查requests==2.26.0的要求 psf/requests:v2.26.0::seup.py

    对于小于 3 的 Python 版本,我们必须安装 chardet>=3.0.2,<5; insterd of charset_normalizer~=2.0.0

    错误消息总是有帮助的,至少可以确定问题的根源

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 2016-04-26
      • 2020-11-07
      • 2019-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多