Почему pip ведет себя по-разному локально и в контейнере Docker? - PullRequest
1 голос
/ 02 апреля 2019

Итак, у меня есть файл требований, который выглядит следующим образом -

aiohttp==3.5.4
aioredis==1.2.0
amqp==2.4.2
asn1crypto==0.24.0
astroid==2.1.0
async-timeout==3.0.1
atomicwrites==1.3.0
# so on...

Я запускаю

pip install -r requirements.txt

локально, и все работает нормально.

Однако, когда яиспользовать этот Dockerfile

FROM python:2.7-slim

WORKDIR /app

COPY . /app

# Install any needed packages specified in requirements.txt
RUN pip install -r requirements.txt

EXPOSE 80

ENV FLASK_APP=iterative.py
ENV FLASK_ENV=development

RUN pip install gunicorn

CMD ["gunicorn -w 4 app:app"]

Я получаю эту ошибку -

Could not find a version that satisfies the requirement aiohttp==3.5.4 (from -r requirements.txt (line 1)) (from versions: 0.1, 0.2, 0.3, 0.4, 0.4.1, 0.4.2, 0.4.3, 0.4.4, 0.5.0, 0.6.0, 0.6.1, 0.6.2, 0.6.3, 0.6.4, 0.6.5, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.9.0, 0.9.1, 0.9.2, 0.9.3, 0.10.0, 0.10.1, 0.10.2, 0.11.0, 0.12.0, 0.13.0, 0.13.1, 0.14.0, 0.14.1, 0.14.2, 0.14.3, 0.14.4, 0.15.0, 0.15.1, 0.15.2, 0.15.3, 0.16.0, 0.16.1, 0.16.2, 0.16.3, 0.16.4, 0.16.5, 0.16.6, 0.17.0, 0.17.1, 0.17.2, 0.17.3, 0.17.4, 0.18.0, 0.18.1, 0.18.2, 0.18.3, 0.18.4, 0.19.0, 0.20.0, 0.20.1, 0.20.2, 0.21.0, 0.21.1, 0.21.2, 0.21.4, 0.21.5, 0.21.6, 0.22.0a0, 0.22.0b0, 0.22.0b1, 0.22.0b2, 0.22.0b3, 0.22.0b4, 0.22.0b5, 0.22.0b6, 0.22.0, 0.22.1, 0.22.2, 0.22.3, 0.22.4, 0.22.5, 1.0.0, 1.0.1, 1.0.2, 1.0.3, 1.0.5, 1.1.0, 1.1.1, 1.1.2, 1.1.3, 1.1.4, 1.1.5, 1.1.6, 1.2.0, 1.3.0, 1.3.1, 1.3.2, 1.3.3, 1.3.4, 1.3.5, 2.0.0rc1, 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.0.4, 2.0.5, 2.0.6.post1, 2.0.7, 2.1.0, 2.2.0, 2.2.1, 2.2.2, 2.2.3, 2.2.4, 2.2.5, 2.3.0a4, 2.3.0, 2.3.1, 2.3.2b2)
No matching distribution found for aiohttp==3.5.4 (from -r requirements.txt (line 1))

Кроме того, моя версия Python локально имеет версию 2.7.15.

Если я добавлю

RUN pip install aiohttp

Я получаю эту ошибку при сборке

aiohttp requires Python '>=3.4.2' but the running Python is 2.7.16

Поэтому у меня есть два вопроса -

  1. Почему моя установка pip работает правильно локально, но при сборке образа docker?
  2. Почему aiohttp требует версию Python> = 3.4.2, когда я запускаю в Docker, но не локально?

Спасибо

1 Ответ

1 голос
/ 02 апреля 2019

Хорошо, я решил это.

Якобы, решение состоит в том, чтобы использовать более современную версию python - я в конечном итоге использовал 3.6.

Я думаю что былоОднако случалось так, что pip использовал python3, в то время как команда python была версии 2.7.15.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...