it-swarm.com.de

Immer "Fehler beim Laden des MySQLdb-Moduls: Kein Modul mit dem Namen MySQLdb" - habe bisherige Lösungen ausprobiert

Dies ist ein viel besprochenes Problem für Benutzer von OSX 10.6, aber ich konnte keine funktionierende Lösung finden. Hier ist mein Setup:

Python 2.6.1 64bit Django 1.2.1 MySQL 5.1.47 osx10.6 64bit

Ich erstelle einen virtualenvwrapper mit --no-site-packages und installiere dann Django. Wenn ich die virtualenv aktiviere und python manage.py syncdb starte, erhalte ich diesen Fehler:

Traceback (most recent call last):
File "manage.py", line 11, in <module>
  execute_manager(settings)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/__init__.py", line 438, in execute_manager
  utility.execute()
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/__init__.py", line 379, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/__init__.py", line 257, in fetch_command
  klass = load_command_class(app_name, subcommand)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/__init__.py", line 67, in load_command_class
  module = import_module('%s.management.commands.%s' % (app_name, name))
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/commands/syncdb.py", line 7, in <module>
from Django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/core/management/sql.py", line 5, in <module>
from Django.contrib.contenttypes import generic
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/contrib/contenttypes/generic.py", line 6, in <module>
  from Django.db import connection
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/db/__init__.py", line 75, in <module>
  connection = connections[DEFAULT_DB_ALIAS]
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/db/utils.py", line 91, in __getitem__
  backend = load_backend(db['ENGINE'])
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/db/utils.py", line 32, in load_backend
  return import_module('.base', backend_name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Users/joerobinson/.virtualenvs/dj_tut/lib/python2.6/site-packages/Django/db/backends/mysql/base.py", line 14, in <module>
  raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Ich habe auch den MySQL for Python adapter installiert, aber ohne Erfolg (vielleicht habe ich es falsch installiert?). 

Hat sich schon mal jemand damit beschäftigt?

252
Joe

Dieses Problem war das Ergebnis einer unvollständigen/falschen Installation des MySQL for Python-Adapters. Insbesondere musste ich den Pfad zur Datei mysql_config so bearbeiten, dass er auf/usr/local/mysql/bin/mysql_config verweist - in diesem Artikel genauer beschrieben: http://dakrauth.com/blog/entry/python- and-Django-setup-mac-os-x-leopard/

7
Joe

Ich hatte den gleichen Fehler und pip install MySQL-python hat es für mich gelöst.

Alternative Installationen:

  • Wenn Sie keinen Pip haben, sollte easy_install MySQL-python funktionieren.
  • Wenn Ihr Python von einem Paketsystem verwaltet wird, müssen Sie möglicherweise dieses System verwenden (z. B. Sudo apt-get install ...).

Soli stellt im Folgenden fest, dass folgende Fehlermeldung angezeigt wird:

EnvironmentError: mysql_config not found

... dann haben Sie ein weiteres Problem mit der Systemabhängigkeit. Die Lösung dieses Problems variiert von System zu System, jedoch für von Debian abgeleitete Systeme:

Sudo apt-get install python-mysqldb

329
Clint

Unter Ubuntu musste ich Folgendes tun:

Sudo apt-get install python-mysqldb
61
kottin

Neben anderen Antworten half mir das Folgende, um die Installation von mysql-python abzuschließen:

virtualenv, mysql-python, pip: Weiß jemand wie?

Auf Ubuntu ...

apt-get install libmysqlclient-dev
apt-get install python-dev
pip install mysql-python

Vergessen Sie nicht, am Anfang von Befehlen 'Sudo' hinzuzufügen, wenn Sie nicht über die erforderlichen Berechtigungen verfügen.

57
MrOodles

Versuchen Sie dies mit den folgenden Befehlen. Sie arbeiten für mich:

brew install mysql-connector-c 
pip install MySQL-python
22
User9527

mysql_config muss sich im Pfad befinden. Auf dem Mac

export PATH=$PATH:/usr/local/mysql/bin/
pip install MySQL-python
19
toucan
pip install mysql-python

hat einen Fehler ausgelöst:

EnvironmentError: mysql_config wurde nicht gefunden

Sudo apt-get install python-mysqldb

das Problem behoben.

14
Soli

Wie ich es zum Laufen gebracht habe:

virtualenv -p python3.5 env/test

Nachdem ich mein env gekauft habe:

pip install pymysql
pip install Django

Dann habe ich das Startprojekt ausgeführt und in manage.py folgendes hinzugefügt:

+ try:
+     import pymysql
+     pymysql.install_as_MySQLdb()
+ except:
+     pass

Auch diese Einstellungen in den Einstellungen aktualisiert:

DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.mysql',
        'NAME': 'foobar_db',
        'USER': 'foobaruser',
        'PASSWORD': 'foobarpwd',
    }
}

Ich habe auch configparser==3.5.0 in meiner virtualenv installiert, nicht sicher, ob dies erforderlich war oder nicht ...

Ich hoffe es hilft, 

10
Douglas

Versuchen Sie folgendes: Dies hat das Problem für mich gelöst.

pip installiere MySQL-Python

8
errakeshpd

Folgendes funktionierte perfekt für mich mit Ubuntu 13.10 64-Bit:

Sudo apt-get install libmysqlclient-dev
Sudo apt-get install python-dev

Navigieren Sie nun zu Ihrer virtuellen Umgebung (z. B. zum Ordner env) und führen Sie Folgendes aus:

Sudo ./bin/pip install mysql-python

Ich habe tatsächlich die Lösung in einer separaten Frage gefunden und zitiere sie unten:

Wenn Sie die virtualenv mit dem Schalter --no-site-packages erstellt haben, wechseln Sie (Standardeinstellung) und systemweit installierte Zusätze wie MySQLdb sind nicht in den Paketen der virtuellen Umgebung enthalten.

Sie müssen MySQLdb mit dem Befehl pip installieren, der mit .__ installiert ist. Virtualenv. Aktivieren Sie entweder die Virtualenv mit der Bin/enable Skript oder verwenden Sie bin/pip aus der virtuellen Umgebung, um die .__ zu installieren. MySQLdb-Bibliothek auch lokal.

Erstellen Sie alternativ eine neue Virtualenv mit System-Site-Packages mit dem Schalter --system-site-package enthalten.

Ich denke, das sollte auch mit OSX funktionieren. Das einzige Problem wäre, einen äquivalenten Befehl für die Installation von libmysqlclient-dev und python-dev zu erhalten, da sie zum Kompilieren von mysql-python benötigt werden.

Hoffe das hilft.

8
Rafay

Sudo apt-get install python-mysqldb funktioniert perfekt in Ubuntu

pip install mysql-python führt zu einem Umgebungsfehler

7
Maurice Elagu

Dies funktionierte für Red Hat Enterprise Linux Server Version 6.4

Sudo yum install mysql-devel
Sudo yum install python-devel
pip install mysql-python
5
Rohit Alekar

Sie können als pip install mysqlclient installieren.

4

Ich habe das Upgrade auf OSX Mavericks und Pycharm 3 durchgeführt und habe angefangen, diesen Fehler zu erhalten. Ich habe Pip und Easy Install verwendet und den Fehler erhalten: 

befehl '/ usr/bin/clang' mit Exitstatus 1 fehlgeschlagen.

Ich muss also auf Xcode 5 updaten und versuchte erneut, Pip zu installieren.

pip install mysql-python

Damit sind alle Probleme behoben.

3
unixeO

pip funktionierte bei mir nicht unter Windows 8 64-Bit-System. easy_install mysql-python funktioniert für mich . Sie können easy_install verwenden, um das Erstellen von Binärdateien unter Windows zu vermeiden, wenn pip nicht funktioniert. 

2
kta

Der hier aufgetretene Fehler liegt beim Importieren des Python-Moduls. Dies kann durch Hinzufügen des Python-Site-Packages-Ordners zur Umgebungsvariablen $ PYTHONPATH unter OS X gelöst werden. Daher können wir der Datei .bash_profile den folgenden Befehl hinzufügen:

export PYTHONPATH="$PYTHONPATH:/usr/local/lib/pythonx.x/site-packages/"

* Ersetzen Sie x.x durch die von Ihnen verwendete Python-Version

2
Arun Reddy

Wenn Sie Python3 verwenden, versuchen Sie Folgendes (Mein Betriebssystem ist Ubuntu 16.04):

Sudo apt-get install python3-mysqldb
2
Dillion Wang

Ich hatte das gleiche Problem unter OSX 10.6.6. Aber nur ein einfacher easy_install mysql-python am Terminal löste es nicht, da ein weiterer Schluckauf folgte:

error: command 'gcc-4.2' failed with exit status 1

Anscheinend tritt dieses Problem nach einem Upgrade von XCode3 (der standardmäßig mit OSX 10.6 ausgeliefert wird) auf XCode4 auf. Diese neuere Version entfernt Unterstützung für das Erstellen von PPC-Arch. Wenn es sich um den gleichen Fall handelt, versuchen Sie es wie folgt vor easy_install mysql-python

Sudo bash
export ARCHFLAGS='-Arch i386 -Arch x86_64'
rm -r build
python setup.py build
python setup.py install

Vielen Dank an Ned Deily für diese Lösung. Überprüfe hier

1
jerrymouse

Dasselbe Problem habe ich durch die Installation vonMySQL-pythonlibrary mit pip überwunden. Sie können die Nachricht auf meiner Konsole anzeigen, wenn Sie meine Datenbankeinstellungen zum ersten Mal in settings.py geändert und den Befehl makemigrations ausgeführt haben (die Lösung folgt der folgenden Nachricht, sehen Sie einfach das).

  (vir_env) admins-MacBook-Pro-3:src admin$ python manage.py makemigrations
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/core/management/__init__.py", line 312, in execute
    Django.setup()
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/contrib/auth/models.py", line 41, in <module>
    class Permission(models.Model):
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/models/base.py", line 139, in __new__
    new_class.add_to_class('_meta', Options(meta, **kwargs))
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/models/base.py", line 324, in add_to_class
    value.contribute_to_class(cls, name)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/models/options.py", line 250, in contribute_to_class
    self.db_table = truncate_name(self.db_table, connection.ops.max_name_length())
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/__init__.py", line 36, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/utils.py", line 240, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/utils.py", line 111, in load_backend
    return import_module('%s.base' % backend_name)
  File "/usr/local/Cellar/python/2.7.12_1/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/admin/Desktop/SetUp1/vir_env/lib/python2.7/site-packages/Django/db/backends/mysql/base.py", line 27, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

Zum Schluss habe ich dieses Problem wie folgt überwunden:

(vir_env) admins-MacBook-Pro-3:src admin$ pip install MySQLdb
Collecting MySQLdb
  Could not find a version that satisfies the requirement MySQLdb (from versions: )
No matching distribution found for MySQLdb
(vir_env) admins-MacBook-Pro-3:src admin$ pip install MySQL-python
Collecting MySQL-python
  Downloading MySQL-python-1.2.5.Zip (108kB)
    100% |████████████████████████████████| 112kB 364kB/s 
Building wheels for collected packages: MySQL-python
  Running setup.py bdist_wheel for MySQL-python ... done
  Stored in directory: /Users/admin/Library/Caches/pip/wheels/38/a3/89/ec87e092cfb38450fc91a62562055231deb0049a029054dc62
Successfully built MySQL-python
Installing collected packages: MySQL-python
Successfully installed MySQL-python-1.2.5
(vir_env) admins-MacBook-Pro-3:src admin$ python manage.py makemigrations
No changes detected
(vir_env) admins-MacBook-Pro-3:src admin$ python manage.py migrate
Operations to perform:
  Synchronize unmigrated apps: staticfiles, rest_framework, messages, crispy_forms
  Apply all migrations: admin, contenttypes, sessions, auth, PyApp
Synchronizing apps without migrations:
  Creating tables...
    Running deferred SQL...
  Installing custom SQL...
Running migrations:
  Rendering model states... DONE
  Applying PyApp.0001_initial... OK
  Applying PyApp.0002_auto_20170310_0936... OK
  Applying PyApp.0003_auto_20170310_0953... OK
  Applying PyApp.0004_auto_20170310_0954... OK
  Applying PyApp.0005_auto_20170311_0619... OK
  Applying PyApp.0006_auto_20170311_0622... OK
  Applying PyApp.0007_loraevksensor... OK
  Applying PyApp.0008_auto_20170315_0752... OK
  Applying PyApp.0009_auto_20170315_0753... OK
  Applying PyApp.0010_auto_20170315_0806... OK
  Applying PyApp.0011_auto_20170315_0814... OK
  Applying PyApp.0012_auto_20170315_0820... OK
  Applying PyApp.0013_auto_20170315_0822... OK
  Applying PyApp.0014_auto_20170315_0907... OK
  Applying PyApp.0015_auto_20170315_1041... OK
  Applying PyApp.0016_auto_20170315_1355... OK
  Applying PyApp.0017_auto_20170315_1401... OK
  Applying PyApp.0018_auto_20170331_1348... OK
  Applying PyApp.0019_auto_20170331_1349... OK
  Applying PyApp.0020_auto_20170331_1350... OK
  Applying PyApp.0021_auto_20170331_1458... OK
  Applying PyApp.0022_delete_postoffice... OK
  Applying PyApp.0023_posoffice... OK
  Applying PyApp.0024_auto_20170331_1504... OK
  Applying PyApp.0025_auto_20170331_1511... OK
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying sessions.0001_initial... OK
(vir_env) admins-MacBook-Pro-3:src admin$ 
0
hygull

Führe diesen Befehl aus  

Sudo pip install mysql-python;

jetzt kannst du deinen Befehl ausführen.

python manage.py startapp filename;
0

Install Command Line Tools Works für mich:

xcode-select --install
0

Für mich wurde das Problem gelöst, indem einfach mysql-python neu installiert wurde

pip uninstall mysql-python
pip install mysql-python
0
Özer S.

Ich bin auf ähnliche Situationen gestoßen, in denen ich Python3.7 und Django 2.1 in Virtualenv auf Mac OSX verwende. Versuchen Sie den Befehl auszuführen:

pip install mysql-python
pip install pymysql

Bearbeiten Sie die __init__.py-Datei in Ihrem Projektordner und fügen Sie Folgendes hinzu:

import pymysql

pymysql.install_as_MySQLdb()

Führen Sie dann Folgendes aus: python3 manage.py runserver Oder python manage.py runserver

0
Fred