it-swarm.com.de

Fehler beim Laden des MySQLdb-Moduls und "pip install MySQLdb"

Ich versuche ein Django-Projekt zu starten. 

Ich erhalte diesen Fehler beim Versuch, manage.py auszuführen:

(venv)dyn-160-39-161-214:proj Bren$ python manage.py
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/Django/core/management/__init__.py", line 354, in execute_from_command_line
    utility.execute()
  File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/Django/core/management/__init__.py", line 328, in execute
    Django.setup()
  File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/Django/__init__.py", line 18, in setup
    apps.populate(settings.INSTALLED_APPS)
  File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/Django/apps/registry.py", line 108, in populate
    app_config.import_models(all_models)
  File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/Django/apps/config.py", line 198, in import_models
    self.models_module = import_module(models_module_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/Django/contrib/auth/models.py", line 41, in <module>
    class Permission(models.Model):
  File "/Users/Bren/Desktop/fss/venv/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/Bren/Desktop/fss/venv/lib/python2.7/site-packages/Django/db/models/base.py", line 324, in add_to_class
    value.contribute_to_class(cls, name)
  File "/Users/Bren/Desktop/fss/venv/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/Bren/Desktop/fss/venv/lib/python2.7/site-packages/Django/db/__init__.py", line 36, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/Django/db/utils.py", line 241, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages/Django/db/utils.py", line 112, in load_backend
    return import_module('%s.base' % backend_name)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/Users/Bren/Desktop/fss/venv/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

Ich habe mich gefragt, welches Modul ich installieren sollte.

Wenn ich pip install MySQLdb verwende, erhalte ich folgende Fehlermeldung:

    Collecting MySQLdb
  Could not find a version that satisfies the requirement MySQLdb (from versions: )
No matching distribution found for MySQLdb

Wenn ich das auf SO und an anderen Orten nachsehe, scheint es eine Menge verschiedener mysql-Module zu geben.

Auch so sieht mein Setup für die DB aus (Ich habe dieses Projekt nicht geschrieben und bin weitgehend neu in Django und Python):

    DATABASES = {
    'default': {
        'ENGINE': 'Django.db.backends.mysql',

...

    }
}

EdBaker schlug pip install MySQL-python vor.

Ich habe dies als Antwort erhalten:

Collecting MySQL-python   Using cached MySQL-python-1.2.5.Zip
    Complete output from command python setup.py Egg_info:
    sh: mysql_config: command not found
    Traceback (most recent call last):
      File "<string>", line 20, in <module>
      File "/private/var/folders/m3/11zknyw55zxbw6zqh58rwq580000gn/T/pip-build-DC9tSL/MySQL-python/setup.py", line 17, in <module>
        metadata, options = get_config()
      File "setup_posix.py", line 43, in get_config
        libs = mysql_config("libs_r")
      File "setup_posix.py", line 25, in mysql_config
        raise EnvironmentError("%s not found" % (mysql_config.path,))
    EnvironmentError: mysql_config not found

    ---------------------------------------- Command "python setup.py Egg_info" failed with error code 1 in /private/var/folders/m3/11zknyw55zxbw6zqh58rwq580000gn/T/pip-build-DC9tSL/MySQL-python

Versuch, import MySQLdb in der Shell auszuführen:

[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.39)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import MySQLdb
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named MySQLdb

Versuch, pip zu aktualisieren:

pip install pip --upgrade

zeigte, dass pip auf dem neuesten Stand war

Requirement already up-to-date: pip in /Users/Bren/Desktop/fss/venv/lib/python2.7/site-packages
8
Bren

Die eindeutige Installation von pip install MySQL-python ist der richtige Weg. Das Problem liegt in der Position von mysql_config. Schauen Sie sich hier um, je nach Betriebssystem kann dies hilfreich sein: mysql_config wurde bei der Installation von mysqldb python interface nicht gefunden.

16
fodma1

Ich habe meine Frage hier befolgt 404 Fehler bei der Verwendung von brew, um mysql

und dann, als fodma1 vorgeschlagen wurde, ging es hier stackoverflow.com/a/33928783/2419215

und jetzt funktioniert es zum größten Teil (habe einen anderen Fehler, aber das ist für einen anderen Beitrag)! 

Danke EdBaker und Fodma1!

0
Bren

brew installieren MySQL

Der Pfad wird nach Abschluss der Installation angezeigt. Verwenden Sie den folgenden Befehl: 

Sudo PATH =/usr/local/Cellar/mysql/bin /: $ PATH pip install mysql-python

0
user3763076