Почему pip утверждает, что у меня несовместимый модуль, несмотря на правильную версию (и нарушает сборку докера)? - PullRequest
0 голосов
/ 21 сентября 2019

При сборке скрипта в Docker-контейнере мне нужно установить внешние библиотеки.Сбой одного из них:

Step 2/6 : RUN pip install paho-mqtt logbook arrow requests ics
 ---> Running in 93d9144d6224
(...)

ERROR: ics 0.5 has requirement arrow<0.12,>=0.11, but you'll have arrow 0.15.2 which is incompatible.
Installing collected packages: paho-mqtt, logbook, six, python-dateutil, arrow, chardet, certifi, urllib3, idna, requests, ics
Successfully installed arrow-0.15.2 certifi-2019.9.11 chardet-3.0.4 ics-0.5 idna-2.8 logbook-1.5.2 paho-mqtt-1.4.0 python-dateutil-2.8.0 requests-2.22.0 six-1.12.0 urllib3-1.25.5

Я не понимаю эту ошибку:

  • версии вроде бы в порядке: 0.15.2> = 0.11
  • несмотря наошибка установки «успешна»

В любом случае (если установка прошла успешно или нет), эта ошибка нарушает сборку докера.

Главный вопрос будетпочему ошибка в первую очередь?

Подвопросы:

  • как ее исправить?
  • если сборка прошла успешно,как заставить хотя бы временно собрать докер (это домашняя установка)

Весь журнал сборки на случай, если есть другая полезная информация:

Step 1/6 : FROM python:3.7-alpine
 ---> 39fb80313465
Step 2/6 : RUN pip install paho-mqtt logbook arrow requests ics
 ---> Running in 93d9144d6224
Collecting paho-mqtt
  Downloading https://files.pythonhosted.org/packages/25/63/db25e62979c2a716a74950c9ed658dce431b5cb01fde29eb6cba9489a904/paho-mqtt-1.4.0.tar.gz (88kB)
Collecting logbook
  Downloading https://files.pythonhosted.org/packages/6b/3f/f4e6693791efacc1282852fba5392da0649b19416b37422c5489f79a52ea/Logbook-1.5.2.tar.gz (85kB)
Collecting arrow
  Downloading https://files.pythonhosted.org/packages/cc/f5/f618f8423fe674a60461e58683edfeead93f4bbf95b9fca0e9699e765b35/arrow-0.15.2-py2.py3-none-any.whl (40kB)
Collecting requests
  Downloading https://files.pythonhosted.org/packages/51/bd/23c926cd341ea6b7dd0b2a00aba99ae0f828be89d72b2190f27c11d4b7fb/requests-2.22.0-py2.py3-none-any.whl (57kB)
Collecting ics
  Downloading https://files.pythonhosted.org/packages/3a/66/7844baa915da9a76ef7b7b6d93935cc1474688c6ea914b90dbe54d6f6f41/ics-0.5-py2.py3-none-any.whl
Collecting python-dateutil (from arrow)
  Downloading https://files.pythonhosted.org/packages/41/17/c62faccbfbd163c7f57f3844689e3a78bae1f403648a6afb1d0866d87fbb/python_dateutil-2.8.0-py2.py3-none-any.whl (226kB)
Collecting chardet<3.1.0,>=3.0.2 (from requests)
  Downloading https://files.pythonhosted.org/packages/bc/a9/01ffebfb562e4274b6487b4bb1ddec7ca55ec7510b22e4c51f14098443b8/chardet-3.0.4-py2.py3-none-any.whl (133kB)
Collecting certifi>=2017.4.17 (from requests)
  Downloading https://files.pythonhosted.org/packages/18/b0/8146a4f8dd402f60744fa380bc73ca47303cccf8b9190fd16a827281eac2/certifi-2019.9.11-py2.py3-none-any.whl (154kB)
Collecting urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 (from requests)
  Downloading https://files.pythonhosted.org/packages/81/b7/cef47224900ca67078ed6e2db51342796007433ad38329558f56a15255f5/urllib3-1.25.5-py2.py3-none-any.whl (125kB)
Collecting idna<2.9,>=2.5 (from requests)
  Downloading https://files.pythonhosted.org/packages/14/2c/cd551d81dbe15200be1cf41cd03869a46fe7226e7450af7a6545bfc474c9/idna-2.8-py2.py3-none-any.whl (58kB)
Collecting six>1.5 (from ics)
  Downloading https://files.pythonhosted.org/packages/73/fb/00a976f728d0d1fecfe898238ce23f502a721c0ac0ecfedb80e0d88c64e9/six-1.12.0-py2.py3-none-any.whl
Building wheels for collected packages: paho-mqtt, logbook
  Building wheel for paho-mqtt (setup.py): started
  Building wheel for paho-mqtt (setup.py): finished with status 'done'
  Created wheel for paho-mqtt: filename=paho_mqtt-1.4.0-cp37-none-any.whl size=48332 sha256=56275b1fa3496506436d27287c83cde7c59ec350292f87edd45f0248f8ef46e5
  Stored in directory: /root/.cache/pip/wheels/82/e5/de/d90d0f397648a1b58ffeea1b5742ac8c77f71fd43b550fa5a5
  Building wheel for logbook (setup.py): started
  Building wheel for logbook (setup.py): finished with status 'done'
  Created wheel for logbook: filename=Logbook-1.5.2-cp37-cp37m-linux_x86_64.whl size=66345 sha256=1a1f099a9baeaab15f43814c6506f3fc640c49add0fb8fafeb93397de9cd34b6
  Stored in directory: /root/.cache/pip/wheels/c7/d6/22/9f6bd2884a48b215fdd9cbfa78671b51f4470dfd3d14ef701a
Successfully built paho-mqtt logbook
ERROR: ics 0.5 has requirement arrow<0.12,>=0.11, but you'll have arrow 0.15.2 which is incompatible.
Installing collected packages: paho-mqtt, logbook, six, python-dateutil, arrow, chardet, certifi, urllib3, idna, requests, ics
Successfully installed arrow-0.15.2 certifi-2019.9.11 chardet-3.0.4 ics-0.5 idna-2.8 logbook-1.5.2 paho-mqtt-1.4.0 python-dateutil-2.8.0 requests-2.22.0 six-1.12.0 urllib3-1.25.5
Removing intermediate container 93d9144d6224
 ---> 7a3f016d1374

Ответы [ 2 ]

1 голос
/ 21 сентября 2019

Не видя вашего Dockerfile, мы не можем реально увидеть, что вы делаете;но

pip install arrow==0.11

вместо pip install arrow должно исправить непосредственную проблему.

Если команды в ваших операторах RUN разделены с &&, вы можете изменить это на ;после команды, ошибку которой вы хотите игнорировать, и вы можете добавить || true в конце, чтобы весь оператор RUN всегда выполнялся успешно;но это, как правило, плохая практика, и в этом случае маловероятно, что в любом случае получится полезное изображение.

0 голосов
/ 21 сентября 2019

У вас есть модуль с именем ics, который зависит от модуля arrow с версией <0.12,>=0.11, эти версии зависимостей указываются при сборке модуля python.При создании образа Docker он использует arrow 0.15.2 из кэша, поскольку он может быть уже установлен на вашем компьютере.

Лучший способ справиться с этими типами ошибок - определить все ваши зависимости с их версиями в файле requirements.txt и запустить pip install -r requirements.txt, чтобы установить все за один раз.

Я могуНе могу сказать наверняка, почему ваша сборка не работает.Вы можете попробовать удалить модуль arrow и переустановить указанную версию.

...