Mac OS X 10.6, Mysql, Mysql-Python, Django - PullRequest
0 голосов
/ 02 января 2012

ОБНОВЛЕНИЕ:

Я сталкивался с этим сообщением: Python mysqldb на Mac OSX 10.6 не работает видел два варианта:

  1. Добавить клиент MySQLбиблиотеки для LD_LIBRARY_PATH

    mysql_config --libs -L / usr / local / mysql / lib -lmysqlclient -lpthread

Так что мне здесь ничего не нужно делать.

просто собираюсь обновить до Python 2.7, а затем переустановить mysqldb.

ВЫПУСК:

Успешная установка django, запуск среды virtualenvs и создание проекта с sqlite3.Я хотел использовать mysql для управления базой данных.

settings.py

DATABASES = {
     'default': {
         'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
         'NAME': 'blog',                      # Or path to database file if using sqlite3.
         'USER': 'root',                      # Not used with sqlite3.
         'PASSWORD': 'root',                  # Not used with sqlite3.
         'HOST': 'localhost',                      # Set to empty string for localhost. Not used with sqlite3.
         'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
     } }

Это озадачило меня: после выполнения:

sudo python manage.py runserver

Ошибка, которую я получаю:

 Traceback (most recent call last):
  File "manage.py", line 14, in <module>
    execute_manager(settings)
  File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 438, in execute_manager
    utility.execute()
  File "/Library/Python/2.6/site-packages/django/core/management/__init__.py", line 379, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 191, in run_from_argv
    self.execute(*args, **options.__dict__)
  File "/Library/Python/2.6/site-packages/django/core/management/base.py", line 209, in execute
    translation.activate('en-us')
  File "/Library/Python/2.6/site-packages/django/utils/translation/__init__.py", line 100, in activate
    return _trans.activate(language)
  File "/Library/Python/2.6/site-packages/django/utils/translation/trans_real.py", line 202, in activate
    _active.value = translation(language)
  File "/Library/Python/2.6/site-packages/django/utils/translation/trans_real.py", line 185, in translation
    default_translation = _fetch(settings.LANGUAGE_CODE)
  File "/Library/Python/2.6/site-packages/django/utils/translation/trans_real.py", line 162, in _fetch
    app = import_module(appname)
  File "/Library/Python/2.6/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/james/Projects/current/code/blog/jamesapps/../jamesapps/tagging/__init__.py", line 3, in <module>
    from tagging.managers import ModelTaggedItemManager, TagDescriptor
  File "/Users/james/Projects/current/code/blog/jamesapps/../jamesapps/apps/tagging/__init__.py", line 3, in <module>
    from tagging.managers import ModelTaggedItemManager, TagDescriptor
  File "/Users/james/Projects/current/code/blog/blog/django-tagging/tagging/managers.py", line 5, in <module>
  File "/Library/Python/2.6/site-packages/django/contrib/contenttypes/models.py", line 1, in <module>
    from django.db import models
  File "/Library/Python/2.6/site-packages/django/db/__init__.py", line 78, in <module>
    connection = connections[DEFAULT_DB_ALIAS]
  File "/Library/Python/2.6/site-packages/django/db/utils.py", line 93, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Library/Python/2.6/site-packages/django/db/utils.py", line 33, in load_backend
    return import_module('.base', backend_name)
  File "/Library/Python/2.6/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Library/Python/2.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: dlopen(/Library/Python/2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Library/Python/2.6/site-packages/MySQL_python-1.2.3-py2.6-macosx-10.6-universal.egg/_mysql.so
  Reason: image not found

Моя настройка:

Mac OS X 10.6.8 2x2Ghz Dual-Core Intel Xeon
/usr/local/mysql/bin/mysql: Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture x86_64):  Mach-O 64-bit executable x86_64
/usr/bin/python (for architecture i386):    Mach-O executable i386
/usr/bin/python (for architecture ppc7400): Mach-O executable ppc

~ / .bash_profile содержит

export PATH=/usr/local/mysql/bin:$PATH
export EDITOR="$HOME/bin/mate -w"
export DYLD_LIBRARY_PATH=/usr/local/mysql/lib/

Если я это сделаю

python shell
import MySQLdb

Это ничего не отображает.

Я прочитал следующие посты и страницы, включая многие другие:

 </5633904/problemy-ustanovki-mysql-python-na-mac-os-x-lion>
<https://stackoverflow.com/questions/1299013/problem-using-mysqldb-symbol-not-found-mysql-affected-rows>
<http://friendlybit.com/tutorial/install-mysql-python-on-mac-os-x-leopard/>

Я удалил mysql, используя следующее, а затем переустановил из .dmg:

•   Stop the database server
•   sudo rm /usr/local/mysql
•   sudo rm -rf /usr/local/mysql*
•   sudo rm -rf /Library/StartupItems/MySQLCOM
•   sudo rm -rf /Library/PreferencePanes/My*
•   edit /etc/hostconfig and remove the line MYSQLCOM=-YES-
•   rm -rf ~/Library/PreferencePanes/My*
•   sudo rm -rf /Library/Receipts/mysql*
•   sudo rm -rf /Library/Receipts/MySQL*
•   sudo rm -rf /private/var/db/receipts/*mysql*

Удалил mysql-python с помощью pip, а затем перекомпилировал из источника:

sudo ARCHFLAGS='-arch x86_64' python setup.py build
sudo ARCHFLAGS='-arch x86_64' python setup.py install

Где я иду не так, это потому, что клиенты mysql неправильно настроены для этой версии Mysql-python?

Ответы [ 2 ]

8 голосов
/ 02 января 2012

sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

0 голосов
/ 02 января 2012

Я обычно устанавливаю MySQL, используя Homebrew на моем Mac (это очень безболезненный процесс), и «образ не найден» - это то, что я помню сразу после обновления версии MySQL без переустановки MySQL-python.

Моя рекомендация - удалить MySQL и MySQL-python, установить Homebrew и запустить:

brew install mysql
pip install MySQL-python
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...