Проблема, с которой я сталкиваюсь, пытаясь подключиться к базе данных для mysql. Я также дал настройки базы данных, которые я использовал.
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
utility.execute()
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
klass = load_command_class(app_name, subcommand)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 77, in load_command_class
module = import_module('%s.management.commands.%s' % (app_name, name))
File "/home/arundhati/Desktop/test/testprac/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module>
from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/core/management/sql.py", line 9, in <module>
from django.db import models
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
backend = load_backend(db['ENGINE'])
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/utils.py", line 27, in load_backend
return import_module('.base', backend_name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
__import__(name)
File "/home/ar/Desktop/test/testprac/local/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb
Настройки базы данных:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
'NAME': 'ar_test_db', # Or path to database file if using
# The following settings are not used with sqlite3:
'USER': '',
'PASSWORD': '',
'HOST': '', # Empty for localhost through domain sockets or '127.0.0.1' for localhost through TCP.
'PORT': '', # Set to empty string for default.
}
}
Большое спасибо за помощь !!
вам необходимо установить python-mysqldb - интерфейс Python для MySQL
Пытаться
sudo apt-get install python-mysqldb
источник
Если вы получаете ошибки при установке mysqlclient с помощью pip, возможно, вам не хватает библиотеки mysql dev. Установите его, запустив:
apt-get install libmysqlclient-dev
и попробуйте еще раз установить mysqlclient:
pip install mysqlclient
источник
pip install mysqlclient
. Я забыл добавить это в свой файл requirements.txt, поэтому, хотя база данных MySQL была там и была заполнена, мой веб-сервер Django не мог с ней взаимодействовать.Мой ответ похож на @ Ron-E, но у меня есть еще несколько ошибок / исправлений, поэтому я помещаю свои шаги ниже для Mac OSX на Mavericks и Python 2.7.6.
Установите пакет Python mysql (если вы получили сообщение об успехе, проигнорируйте следующие шаги)
pip install mysql-python
Когда я сделал это, я получил ошибку «EnvironmentError: mysql_config not found» Чтобы исправить это, я сделал следующее в терминале:
export PATH=$PATH:/usr/local/mysql/bin
При повторном выполнении шага 1 я получаю новую ошибку: «Ошибка: команда 'cc' завершилась неудачно со статусом выхода 1». Чтобы исправить это, я сделал следующее в терминале:
export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments
Я повторил шаг 1 и получил сообщение об успешном завершении установки mysql-python!
источник
-bash: export: =-Qunused-arguments': not a valid identifier
Когда я настраивал среду разработки Django для PyCharm в Mac OS X Mountain Lion с приложением python, mysql, sequel pro, у меня возникла ошибка, такая же, как у владельца этого потока. Однако мой ответ для тех, кто запускает python-mysqldb под Mac OS Mountain Lion x86_x64 (MySql и Python также должны иметь одинаковую архитектуру) и уже пробовали все, например pip и т. Д. Чтобы решить эту проблему, выполните следующие шаги:
Если вы получаете сообщение об ошибке примерно такого вида: «Ошибка среды: / usr / local / bin / mysql_config не найден», попробуйте добавить следующий путь: «export PATH = $ PATH: / usr / local / mysql / bin». Но id мне не помог, и я нашел другое решение. В конце выполнения команды выводится ошибка, которая выглядит так:
Файл "/path_to_file/MySQL-python-1.2.4b4/setup_posix.py", строка 25, в mysql_config поднять EnvironmentError ("% s не найден"% (mysql_config.path,))
Откройте setup_posix.py с помощью vim и перейдите к строке 25 (в вашем случае она может быть другой, если только это не та же версия).
Строка 25 должна выглядеть так после редактирования, если ваш mysql не имеет символической ссылки, например '/ usr / local / mysql / bin /':
f = popen("%s --%s" % ('/usr/local/mysql/bin/mysql_config', what))
После этого я получил еще одну ошибку:
django.core.exceptions.ImproperlyConfigured: Ошибка при загрузке модуля MySQLdb: dlopen (/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2) : Библиотека не загружена: libmysqlclient.18.dylib Ссылка на: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so Причина: изображение не найдено
Наконец, в консоли я сделал следующее:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
На данный момент все работает нормально. Так что я надеюсь, что это будет полезно для тех, кто пользуется Mac. :)
источник
Вам не хватает
mysqldb
библиотеки Python . Используйте эту команду (для Debian / Ubuntu), чтобы установить его:sudo apt-get install python-mysqldb
источник
Это потому, что он не нашел соединителя sql. пытаться:
pip install mysqlclient
источник
Загрузите и установите Mysql-python отсюда для среды Windows. http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python .
источник
Для версий Ubuntu 16.04 и 18.04 или python 3
sudo apt-get install python3-mysqldb
источник
Я решил эту проблему в этой среде:
$ pyenv --version pyenv 1.2.9 $ python --version Python 3.7.2 $ python -m django --version 2.1.7
./settings.py
DATABASES = { 'default': { 'NAME': 'my_db_name', 'ENGINE': 'mysql.connector.django', # 'django.db.backends.mysql' 'USER': '<user>', 'PASSWORD': '<pass>', 'HOST': 'localhost', 'PORT': 3306, 'OPTIONS': { 'autocommit': True, }, } }
Если вы используете
'ENGINE': 'mysql.connector.django'
, установите драйвер, выполнив:$ pip install mysql-connector-python Successfully installed mysql-connector-python-8.0.15 protobuf-3.7.0 six-1.12.0
Обратите внимание,
$ pip install mysql-python
это не сработало для меня.Обратите внимание, что если вы используете
'ENGINE': 'django.db.backends.mysql'
, вы должны установить драйвер, выполнив:$ pip install mysqlclient
Наконец, выполните:
$ python manage.py migrate
Если все в порядке, python создает все эти таблицы id database:
источник
Если вы используете pyhton версии 3.4 или выше. вы должны установить
sudo apt-get install python3-dev libmysqlclient-dev
в терминале. затем установите его
pip install mysqlclient
в виртуальном окружении или в том месте, где вы установили pip.источник
В Ubuntu рекомендуется использовать репозиторий дистрибутивов.
sudo apt-get install python-mysqldb
источник
С тем же сообщением об ошибке, что и Уилл, мне удалось сначала установить mysql, так как отсутствующий файл будет добавлен во время установки. Так после
brew install mysql pip install mysql-python
прошел без ошибок.
источник
Это случилось и со мной, и я считаю, что это стало распространенной ошибкой не только для разработчиков Django, но и для Flask, поэтому я решил эту проблему с помощью brew.
brew install mysql
sudo pip install mysql-python
Таким образом была решена каждая проблема, и оба фреймворка работали абсолютно нормально.
PS: Для тех, кто использует macports (например, я), это может быть проблемой, поскольку brew работает на другом уровне, мой совет - использовать brew вместо macports.
Я надеюсь, что смогу быть полезным.
источник
У меня была такая же проблема. Следующее решило мою проблему
Запустите pip install pymysql в своей оболочке
Затем отредактируйте файл init.py в исходном каталоге проекта (так же, как settings.py), а затем
Добавить:
импортировать pymysql
pymysql.install_as_MySQLdb ()
Это должно решить проблему.
источник
__init__.py
?пытаться:
pip install mysqlclient
Рекомендую использовать в виртуальной среде.
источник
Просто чтобы добавить к другим ответам, если вы используете Django, рекомендуется установить mysql-python ПЕРЕД установкой Django.
источник
Я потратил на это много времени. Оказывается, библиотека базы данных по умолчанию не поддерживается для Python 3. Вы должны использовать другую .
источник
если ошибка выглядит так
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.20.dylib Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/_mysql.so
затем попробуйте:
pip install python-mysqldb
источник
Столкнулся с аналогичной проблемой. Я попытался установить
mysql-python
с помощью pip, но это не удалось из-за ошибок зависимости gcc.Решение, которое сработало для меня
conda install mysql-python
Обратите внимание, что у меня уже была установлена анаконда, у которой не было зависимости от gcc.
источник
Думаю, это ошибка версии.
попробуйте установить это в следующем порядке:
sudo apt-get install python3-mysqldb
pip3 install mysqlclient
python3 manage.py makemigrations
python3 manage.py migrate
источник
Похоже, у вас нет разрешения на папку Python. Пытаться
sudo chown -R $USER /Library/Python/2.7
источник
Возможно, вы можете попробовать следующий режим работы:
sudo python manage.py runserver 0.0.0.0:8000
источник