Ошибка ImportError службы приложений Azure: libmysqlclient.so.18: невозможно открыть файл общего объекта: нет такого файла или каталога

В App Azure Linux с Python модуль Mysql не работает:

2018-12-24T19:11:38.215760010Z     import _mysql
2018-12-24T19:11:38.215763810Z ImportError: libmysqlclient.so.18: cannot 
                               open shared object file: No such file or directory
...
2018-12-24T19:11:27.536810347Z django.core.exceptions.ImproperlyConfigured: 
                               Error loading MySQLdb module.
2018-12-24T19:11:27.536813747Z Did you install mysqlclient?

требование:

django
mysqlclient

Кому-нибудь удавалось запускать django в веб-приложении Azure?

Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
1 541
3

Ответы 3

Это обычная ошибка. Использование mysqlclient также требует установки собственных зависимостей: клиента mysql или клиента mariadb, совместимого с mysql. Чтобы решить эти проблемы наиболее простым способом, измените свой проект на использование mysql-connector-python вместо mysqlclient. Вам также нужно будет обновить свои настройки, чтобы любой механизм базы данных, использующий django.db.backends.mysql, был обновлен до mysql.connector.django.

Попробуйте перейти на сайт scm службы приложений и найдите расположение pip, а затем используйте pip для установки необходимого модуля.

Похоже, в вашем приложении Azure для Linux не установлена ​​собственная клиентская библиотека mysql.

Вот два случая создания собственного изображения.

  • Для образа Debian или Ubuntu сначала запустите apt install libmysqlclient-dev, чтобы предварительно установить libmysqlclient.so в образе Docker.
  • Для Fedora или CentOS iamge сначала запустите yum install mysql-libs, чтобы предварительно установить его.

Или вы можете напрямую использовать существующий образ, в котором предварительно установлены эти необходимые библиотеки, из реестра контейнеров Azure или DockerHub.

Другие вопросы по теме