У меня был запущенный проект 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
6 ответов
Переустановите общую библиотеку c:
pip uninstall mysql-python
pip install mysql-python
Моя проблема с тем же сообщением об ошибке была не полностью настроена среда 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
В моем случае проблема была вызвана обновлениями Ubuntu, поэтому я не могу найти libmysqlclient.so.20
в /usr/lib/x86_64-linux-gnu
.
Решение:
- Проверьте существование
libmysqlclient.so.XX
и/usr/lib/x86_64-linux-gnu
(или аналогичных) - Загрузите
libmysqlclient.so.XX
с веб-сайта Ubuntu (например, ссылка для v20) - Установите lib с помощью команды dpkg
sudo dpkg -i libmysqlclient(...).deb
иsudo apt-get install -f
- Ссылка lib:
ln -s /usr/lib/x86_64-linux-gnu/libmysqlclient.XX.so libmysqlclient.XX.so
Используйте следующие команды:
pip uninstall mysql-python
pip install mysql-python
В моем случае это работает, потому что он ищет из скомпилированных файлов.
На случай, если 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
Я исправил ту же проблему, установив переменную среды ниже:
export LD_LIBRARY_PATH=/usr/local/mysql/lib
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.