Как использовать MySQLdb с Python и Django в OSX 10.6? - PullRequest
255 голосов
/ 01 июня 2010

Это очень обсуждаемая проблема для пользователей OSX 10.6, но я не смог найти решение, которое работает. Вот мои настройки:

Python 2.6.1 64bit Джанго 1.2.1 MySQL 5.1.47 osx10.6 64bit

Я создаю virtualenvwrapper с --no-site-packages, затем установил Django. Когда я активирую virtualenv и запускаю python manage.py syncdb, я получаю эту ошибку:

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

Я также установил адаптер MySQL для Python , но безрезультатно (может быть, я установил его неправильно?).

Кто-нибудь имел дело с этим раньше?

Ответы [ 23 ]

7 голосов
/ 24 сентября 2010

Эта проблема возникла из-за неполной / неправильной установки адаптера MySQL для Python. В частности, мне пришлось отредактировать путь к файлу mysql_config, чтобы он указывал на / usr / local / mysql / bin / mysql_config - более подробно обсуждается в этой статье: http://dakrauth.com/blog/entry/python-and-django-setup-mac-os-x-leopard/

5 голосов
/ 26 апреля 2014

Это работало для Red Hat Enterprise Linux Server версии 6.4

sudo yum install mysql-devel
sudo yum install python-devel
pip install mysql-python
4 голосов
/ 25 октября 2016

Вы можете установить как pip install mysqlclient

3 голосов
/ 28 ноября 2013

Я сделал обновление до OSX Mavericks и Pycharm 3 и начал получать эту ошибку, я использовал pip и easy install и получил ошибку:

Команда '/ usr / bin / clang' завершилась неудачно с состоянием выхода 1.

Так что мне нужно обновить до Xcode 5 и попробовать еще раз установить с помощью pip.

pip install mysql-python

Это решит все проблемы.

2 голосов
/ 04 июля 2015

pip не работал у меня на Windows 8 64-битной системе. easy_install mysql-python у меня работает. Вы можете использовать easy_install, чтобы избежать создания двоичных файлов в Windows, если pip не работает.

2 голосов
/ 13 ноября 2014

Ошибка возникает при импорте модуля python. Это можно решить, добавив папку python site-packages в переменную среды $ PYTHONPATH в OS X. Поэтому мы можем добавить следующую команду в файл .bash_profile:

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

* замените x.x на версию Python, которую вы используете

2 голосов
/ 08 марта 2017

Если вы используете python3, попробуйте это (Моя ОС - Ubuntu 16.04):

sudo apt-get install python3-mysqldb
1 голос
/ 27 июля 2011

У меня была такая же проблема на OSX 10.6.6. Но простой easy_install mysql-python на терминале не помог, а последовал еще один сбой:

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

Очевидно, эта проблема возникает после обновления с XCode3 (который изначально поставляется с OSX 10.6) до XCode4. Эта более новая версия убирает поддержку для сборки ppc arch. Если это тот же случай, попробуйте сделать следующее до easy_install mysql-python

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

Большое спасибо Неду Дейли за это решение. Проверьте здесь

0 голосов
/ 05 августа 2018

Я сталкивался с подобными ситуациями, как ваша, когда я использую python3.7 и django 2.1 в virtualenv на Mac OSX. Попробуйте запустить команду:

pip install mysql-python
pip install pymysql

И отредактируйте __init__.py файл в папке вашего проекта и добавьте следующее:

import pymysql

pymysql.install_as_MySQLdb()

Затем запустите: python3 manage.py runserver или python manage.py runserver

0 голосов
/ 28 ноября 2017

Выполнить эту команду

sudo pip install mysql-python;

теперь вы можете запустить свою команду.

python manage.py startapp filename;
...