djongo — модуль для работы с MongoDB

Немного магии, с которой столкнулся при использовании djongo (3-я буква отличается!) модуля Django для работы с MongoDB.
Все началось с ошибки:

django.core.exceptions.ImproperlyConfigured: 'djongo' isn't an available database backend.
Try using 'django.db.backends.XXX', where XXX is one of:
    'mysql', 'oracle', 'postgresql', 'sqlite3'

Решений в интернете много, но проблема в том, что на одном и тоже компьютере при использовании venv
ошибка была, а при работе без него — нет.

Немного раскопав зависимости удалось понять, что при установке, сначала django, потом djongo:

(venv) ➜  django_docs cat requirements.txt
django>=2.2,<3
djongo

Python ругается на sqlparse:

ERROR: djongo 1.3.2 has requirement sqlparse==0.2.4, 
but you'll have sqlparse 0.3.1 which is incompatible.
 
Installing collected packages: sqlparse, pytz, django, dataclasses, pymongo, 
six, python-dateutil, bson, djongo Successfully installed bson-0.5.8 
dataclasses-0.7 django-2.2.12 djongo-1.3.2 pymongo-3.10.1 
python-dateutil-2.8.1 pytz-2019.3 six-1.14.0 sqlparse-0.3.1

и при этом «портится» библиотека bson (2 файла, один из которых init):

(venv) ➜  django_docs ls -la venv/lib/python3.6/site-packages/bson/__init__.py
-rw-r--r--  1 Air  staff  2264 15 апр 21:25 venv/lib/python3.6/site-packages/bson/__init__.py

Исправление или явно описать версию sqlparse или менять порядок установки:

(venv) ➜  django_docs cat requirements.txt
sqlparse==0.2.4
django>=2.2,<3
djongo
(venv) ➜  django_docs ls -la venv/lib/python3.6/site-packages/bson/__init__.py
-rw-r--r--  1 Air  staff  46012 15 апр 21:28 venv/lib/python3.6/site-packages/bson/__init__.py
Вы можете оставить комментарий ниже.