У меня был запущенный проект django, и по некоторым причинам мне пришлось удалить текущую версию mysql и установить другую версию MySQL на моем компьютере.

Но теперь, когда я пытаюсь запустить эту программу, я получаю сообщение об ошибке:

raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: libmysqlclient.so.20: cannot open shared object file: No such file or directory
18
Dawn T Cherian 18 Дек 2015 в 07:53

6 ответов

Лучший ответ

Переустановите общую библиотеку c:

pip uninstall mysql-python
pip install mysql-python
18
Chalist 8 Окт 2016 в 13:46

Моя проблема с тем же сообщением об ошибке была не полностью настроена среда mysql. Мне нужно было удалить MySQL-Python; установить libmysqlclient-dev; переустановите MySQL-python, чтобы исправить проблему.

Так что исправление было тоже:

  • sudo pip удалить MySQL-python (удалить из выбранного вами менеджера пакетов)
  • sudo apt-get установить libmysqlclient-dev

  • sudo pip установить MySQL-python

** Я должен также упомянуть, что я использовал опцию --no-cache-dir с pip install, чтобы напрямую поразить PYPI, что помогло обнаружить следующее:

sh: 1: mysql_config: not found
Traceback (most recent call last):
  File "<string>", line 1, in <module>
  File "/tmp/pip-build-Y7RFpJ/mysql-python/setup.py", line 17, in <module>
    metadata, options = get_config()
  File "/tmp/pip-build-Y7RFpJ/mysql-python/setup_posix.py", line 43, in get_config
    libs = mysql_config("libs_r")
  File "/tmp/pip-build-Y7RFpJ/mysql-python/setup_posix.py", line 25, in mysql_config
    raise EnvironmentError("%s not found" % (mysql_config.path,))
EnvironmentError: mysql_config not found

И приведу меня в здесь

Использование: mysql 5.7, mysql-python 1.2.5, django 1.8.9, ubuntu 16.04

17
Community 23 Май 2017 в 12:34

В моем случае проблема была вызвана обновлениями Ubuntu, поэтому я не могу найти libmysqlclient.so.20 в /usr/lib/x86_64-linux-gnu.

Решение:

  1. Проверьте существование libmysqlclient.so.XX и /usr/lib/x86_64-linux-gnu (или аналогичных)
  2. Загрузите libmysqlclient.so.XX с веб-сайта Ubuntu (например, ссылка для v20)
  3. Установите lib с помощью команды dpkg sudo dpkg -i libmysqlclient(...).deb и sudo apt-get install -f
  4. Ссылка lib: ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.XX.so libmysqlclient.XX.so
0
Lukasz Koziara 20 Янв 2020 в 20:28

Используйте следующие команды:

pip uninstall mysql-python
pip install mysql-python

В моем случае это работает, потому что он ищет из скомпилированных файлов.

2
jherran 9 Май 2016 в 15:24

На случай, если pip uninstall и pip install не работают, и вы не хотите указывать конкретный путь к ld_library_path, что я сделал на моем vps:

cd /usr/local/lib
sudo ln -s /path/to/your/libmysqlclient.so.20

В моем случае мой mysql установлен из linuxbrew (есть некоторая причина для установки внутри дома), поэтому мне пришлось перейти туда $HOME/.linuxbrew/Cellar/mysql/5.7.18/lib/libmysqlclient.so.20

0
Artiko 13 Май 2019 в 08:57

Я исправил ту же проблему, установив переменную среды ниже:

export LD_LIBRARY_PATH=/usr/local/mysql/lib
1
Pondor 12 Апр 2018 в 05:24