Почему контейнер python3.6 использует /usr/lib из python 3.9
Я запускаю docker contain с помощью FROM python:3.6
Он устанавливает и python 3.6 и 3.9, как я заметил:
Все установленные мной программы находятся в версии 3.6, включая mysqlclient
Но когда он пытается импортировать _mysql, он проверяет /usr/lib из python3.9, что выдает ошибку, потому что он в 3.6, а не в 3.9.
File "/usr/lib/python3.9/importlib/__init__.py", line 127, in import_module
ImportError: cannot import name '_mysql' from partially initialized module 'MySQLdb' (most likely due to a circular import) (/usr/local/lib/python3.6/site-packages/MySQLdb/__init__.py)
Почему возникает эта проблема и как ее предотвратить?
Вот журналы для приложения django, я получаю ошибку:
У меня уже была такая проблема, я добавил виртуальный env с нужными мне пакетами и добавил
WSGIDaemonProcess example.com python-home=/path/to/venv python-path=/path/to/mysite.com
WSGIProcessGroup example.com
Подробности здесь Документы Django
Ответ не почему, а исправление + использование Venv в вашей ситуации лучше