webentwicklung-frage-antwort-db.com.de

MySQL-Python auf dem Mac installieren

Ich verwende OSX 10.8 und PyCharm, um an einem Python-Entwicklungsprojekt zu arbeiten. Ich habe MySQL-Python für den Mac mit den Anweisungen auf der Website installiert 

http://blog.infoentropy.com/MySQL-python_EnvironmentError_mysql_config_not_found

Das Ausführen des Projekts führt jedoch zu diesem Fehler:

Django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so, 2): Symbol not found: _mysql_affected_rows
  Referenced from: /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so
  Expected in: flat namespace
 in /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so

Die Datei, in der der Fehler erwähnt wird, ist am Speicherort vorhanden - /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so 

Die gesamte Fehlermeldung lautet -

/usr/local/bin/python2.7-32 /Users/ashishagarwal/Optimus/MashPotato/backend/mashpotato/manage.py testserver --addrport 8000
Running on development server
Traceback (most recent call last):
  File "/Users/ashishagarwal/Optimus/MashPotato/backend/mashpotato/manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/core/management/__init__.py", line 453, in execute_from_command_line
    utility.execute()
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/core/management/__init__.py", line 272, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/Library/Frameworks/Python.framework/Versions/2.7/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 "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/south/management/commands/__init__.py", line 10, in <module>
    import Django.template.loaders.app_directories
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/template/loaders/app_directories.py", line 23, in <module>
    mod = import_module(app)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/contrib/admin/__init__.py", line 3, in <module>
    from Django.contrib.admin.helpers import ACTION_CHECKBOX_NAME
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/contrib/admin/helpers.py", line 4, in <module>
    from Django.contrib.admin.util import (flatten_fieldsets, lookup_field,
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/contrib/admin/util.py", line 6, in <module>
    from Django.db import models
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/db/__init__.py", line 40, in <module>
    backend = load_backend(connection.settings_dict['ENGINE'])
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/db/__init__.py", line 34, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/db/utils.py", line 93, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/db/utils.py", line 27, in load_backend
    return import_module('.base', backend_name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/Django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Frameworks/Python.framework/Versions/2.7/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: dlopen(/Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so, 2): Symbol not found: _mysql_affected_rows
  Referenced from: /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so
  Expected in: flat namespace
 in /Users/ashishagarwal/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6-intel.Egg-tmp/_mysql.so

Process finished with exit code 1
32
Ashish Agarwal

Sie sollten MySQL zuerst über Homebrew installieren, damit Python-mysql unter OS X einwandfrei funktioniert.

pip uninstall MySQL-python
brew install mysql
pip install MySQL-python
84
kissgyorgy

Stellen Sie sicher, dass Sie über die neueste Version von Xcode verfügen, einschließlich Befehlszeilentools. Ich habe einfach das 2 GB-Update aus dem App Store heruntergeladen. Ich hatte ein ähnliches Problem, insbesondere dies , und das wurde behoben. 

Prost!

0
garbanzio

Ich habe mysql vor langer Zeit mit Homebrew installiert. Als ich nun nach dem Upgrade von OSX in Schwierigkeiten geriet, installierte ich es erneut mit brew reinstall [email protected] (ich lief 5.7.10) und installierte MySQL-Python erneut. Ich erwartete, dass es gelöst wurde. Habe den oben genannten Fehler erhalten.

Es war wirklich mein Kopf rein und nachdem ich einige Stunden damit verbracht hatte, hatte ich keine Ahnung, was ich tun sollte, neu aufgebaut aus Quelle und allem. Ich habe andere Python-Apps für MySQL getestet, aber es war dasselbe. 

Irgendwie erkannte ich, dass der von MySQL-Python gebaute Client gegen die falsche Version war. Ich überprüfte, wo der /usr/local/opt/mysql verlinkt war und dort war er mit einer vorherigen Version verbunden, die ich wie vor 7 Jahren über dmg installiert hatte! Nachdem ich diesen Link entfernt und dann brew link mysql ausgeführt und eine neue virtualenv erstellt und alle Pakete von Grund auf installiert hatte, funktionierte es endlich! 

0
Gesias