pip install of eve package устанавливает bson и pymongo, которые нарушают pymongo - PullRequest
0 голосов
/ 01 февраля 2019

У меня есть проект, использующий Python Eve, но в последнее время я столкнулся с невероятной проблемой зависимостей с pip.

Я использую файл require.txt для установки зависимостей в Docker-контейнере

однако при установке пакета Eve pymongo устанавливается как отложенный.pymongo зависит от bson модуля, но не модуля pypi bson.Тем не менее, pip устанавливает модуль pypi bson, который не будет работать с pymongo, что приводит к ошибке:

from bson.py3compat import abc, string_type, PY3, text_type
ImportError: cannot import name 'abc'

при импорте pymongo.

Я должен настроить свой файл dockerfile насделайте что-то вроде этого:

RUN pip3 install -r requirements.txt
RUN pip3 uninstall bson --yes
RUN pip3 uninstall pymongo --yes
RUN pip3 install pymongo --user

Есть ли способ указать в pipe-файле или файле require.txt, что он не должен пытаться установить bson из pypi?

1 Ответ

0 голосов
/ 01 февраля 2019

pymongo не приносит bson в качестве зависимости, он просто имеет собственную реализацию bson.Проблема в том, что pymongo устанавливает его bson в качестве каталога верхнего уровня в site-packages/, перезаписывая там все существующие bson.

Нет простого способа обойти это.Попробуйте связаться с авторами пимонго и убедить их прекратить перезаписывать bson верхнего уровня.

...