Problem, z którym mam do czynienia podczas próby połączenia się z bazą danych dla mysql. Podałem również ustawienia bazy danych, których użyłem.
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
Ustawienia bazy danych ::
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.
}
}
Wielkie dzięki za pomoc !!
musisz zainstalować python-mysqldb - interfejs Pythona do MySQL
Próbować
sudo apt-get install python-mysqldb
źródło
Jeśli otrzymujesz błędy podczas próby instalacji mysqlclient za pomocą pip, możesz nie mieć biblioteki mysql dev. Zainstaluj go, uruchamiając:
apt-get install libmysqlclient-dev
i spróbuj ponownie zainstalować mysqlclient:
pip install mysqlclient
źródło
pip install mysqlclient
. Zapomniałem dodać to do mojego pliku Requirements.txt, więc mimo że baza danych MySQL była tam i była zapełniona, mój serwer WWW Django nie mógł z nią współdziałać.Moja odpowiedź jest podobna do @ Ron-E, ale mam jeszcze kilka błędów / poprawek, więc poniżej umieszczam kroki dla Mac OSX na Mavericks i Pythonie 2.7.6.
Zainstaluj pakiet Python mysql (jeśli otrzymasz komunikat o powodzeniu, zignoruj poniższe kroki)
pip install mysql-python
Kiedy wykonałem powyższe, otrzymałem błąd „EnvironmentError: mysql_config not found” Aby to naprawić, wykonałem poniższe czynności w terminalu:
export PATH=$PATH:/usr/local/mysql/bin
Po ponownym wykonaniu kroku 1 pojawia się nowy błąd „błąd: polecenie„ cc ”nie powiodło się ze stanem wyjścia 1” Aby to naprawić, wykonałem poniższe czynności w terminalu:
export CFLAGS=-Qunused-arguments export CPPFLAGS=-Qunused-arguments
Ponownie wykonałem krok 1 i otrzymałem komunikat „Pomyślnie zainstalowano mysql-python”!
źródło
-bash: export: =-Qunused-arguments': not a valid identifier
Kiedy konfigurowałem środowisko deweloperskie Django dla PyCharm w Mac OS X Mountain Lion z aplikacją python, mysql, sequel pro, otrzymałem błąd identyczny jak właściciel tego wątku. Jednak moja odpowiedź dla tych, którzy uruchamiają python-mysqldb pod Mac OS Mountain Lion x86_x64 (MySql i Python również powinny mieć tę samą architekturę) i już wypróbowali wszystko, jak pip itp. Aby naprawić ten problem, wykonaj następujące czynności:
Jeśli pojawi się błąd podobny do tego: „Błąd środowiska: / usr / local / bin / mysql_config nie znaleziono”, spróbuj dodać następującą ścieżkę: „export PATH = $ PATH: / usr / local / mysql / bin”. Ale id mi nie pomogło i znalazłem inne rozwiązanie. Pod koniec wykonania polecenia wyjście błędu wygląda następująco:
Plik „/path_to_file/MySQL-python-1.2.4b4/setup_posix.py”, wiersz 25, w mysql_config podnieś błąd EnvironmentError („% s not found”% (mysql_config.path,))
Otwórz plik setup_posix.py z vimem i przejdź do linii 25 (w twoim przypadku może być inaczej, chyba że jest to ta sama wersja).
Linia 25 powinna wyglądać tak po twojej edycji, chyba że twój mysql ma link symboliczny, taki jak następujący '/ usr / local / mysql / bin /':
f = popen("%s --%s" % ('/usr/local/mysql/bin/mysql_config', what))
Po tym pojawił się kolejny błąd:
django.core.exceptions.ImproperlyConfigured: Błąd podczas ładowania modułu MySQLdb: dlopen (/Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so, 2) : Biblioteka nie została załadowana: libmysqlclient.18.dylib Odniesienie z: /Library/Python/2.7/site-packages/MySQL_python-1.2.4b4-py2.7-macosx-10.8-intel.egg/_mysql.so Przyczyna: nie znaleziono obrazu
W końcu zrobiłem w konsoli:
sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib
Obecnie wszystko działa dobrze. Mam więc nadzieję, że będzie to pomocne dla kogoś, kto używa Maca. :)
źródło
Brakuje
mysqldb
biblioteki Python . Użyj tego polecenia (dla Debian / Ubuntu), aby go zainstalować:sudo apt-get install python-mysqldb
źródło
Dzieje się tak, ponieważ nie znalazł złącza sql. próbować:
pip install mysqlclient
źródło
Pobierz i zainstaluj Mysql-python stąd dla środowiska Windows. http://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python .
źródło
Mam rozwiązać ten problem w tym środowisku:
$ 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, }, } }
Jeśli używasz
'ENGINE': 'mysql.connector.django'
, zainstaluj sterownik wykonujący:$ pip install mysql-connector-python Successfully installed mysql-connector-python-8.0.15 protobuf-3.7.0 six-1.12.0
Zauważ, że
$ pip install mysql-python
to nie zadziałało dla mnie.Zauważ, że jeśli używasz
'ENGINE': 'django.db.backends.mysql'
, powinieneś zainstalować sterownik wykonujący:$ pip install mysqlclient
Na koniec wykonaj:
$ python manage.py migrate
Jeśli wszystko w porządku, python tworzy bazę danych wszystkich tych tabel:
źródło
Dla wersji Ubuntu 16.04 i 18.04 lub Python 3
sudo apt-get install python3-mysqldb
źródło
Jeśli używasz pyhton w wersji 3.4 lub nowszej. musisz zainstalować
sudo apt-get install python3-dev libmysqlclient-dev
w terminalu. następnie zainstaluj
pip install mysqlclient
na wirtualnym środowisku env lub tam, gdzie zainstalowałeś pip.źródło
W Ubuntu zaleca się korzystanie z repozytorium dystrybucji.
sudo apt-get install python-mysqldb
źródło
Z tym samym komunikatem o błędzie, co Will, zadziałało, że najpierw zainstalowałem mysql, ponieważ brakujący plik zostanie dodany podczas instalacji. Więc później
brew install mysql pip install mysql-python
działał bez błędów.
źródło
Tak też się stało ze mną i uważam, że stało się to częstym błędem nie tylko dla programistów Django, ale także dla Flaska, więc sposobem, w jaki rozwiązałem ten problem, było użycie brew.
brew install mysql
sudo pip install mysql-python
W ten sposób każdy problem został rozwiązany, a oba frameworki działają absolutnie dobrze.
PS: Dla tych, którzy używają macportów (takich jak ja), może to stanowić problem, ponieważ napar działa na innym poziomie, radzę używać naparu zamiast macportu
Mam nadzieję, że mógłbym być pomocny.
źródło
Miałem ten sam problem, który rozwiązał mój problem
Uruchom pip install pymysql w swojej powłoce
Następnie edytuj plik init.py w katalogu źródłowym projektu (tak samo jak settings.py), a następnie
Dodaj:
import pymysql
pymysql.install_as_MySQLdb ()
to powinno rozwiązać problem.
źródło
__init__.py
?próbować:
pip install mysqlclient
Polecam używać go w środowisku wirtualnym.
źródło
Aby dodać do innych odpowiedzi, jeśli używasz Django, zaleca się zainstalowanie mysql-python PRZED instalacją Django.
źródło
Zmarnowałem na to dużo czasu. Okazuje się, że domyślna biblioteka bazy danych nie jest obsługiwana w Pythonie 3. Musisz użyć innej .
źródło
jeśli błąd wygląda tak
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
więc spróbuj :
pip install python-mysqldb
źródło
W obliczu podobnego problemu. Próbowałem zainstalować
mysql-python
za pomocą pip, ale nie powiodło się z powodu błędów zależności gcc.Rozwiązanie, które zadziałało dla mnie
conda install mysql-python
Proszę zauważyć, że mam już zainstalowaną anacondę, która nie miała zależności od gcc.
źródło
Myślę, że to błąd wersji.
spróbuj zainstalować to w następującej kolejności:
sudo apt-get install python3-mysqldb
pip3 install mysqlclient
python3 manage.py makemigrations
python3 manage.py migrate
źródło
Wygląda na to, że nie masz uprawnień do folderu Python. Próbować
sudo chown -R $USER /Library/Python/2.7
źródło
Może możesz wypróbować następujący tryb działania:
sudo python manage.py runserver 0.0.0.0:8000
źródło