2012-01-01 2 views
0

UPDATE:

Я наткнулся на этот пост: Python mysqldb on Mac OSX 10.6 not working увидел два варианта:Mac OS X 10.6, Mysql, Mysql-Python, Django

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

    mysql_config --libs -L/USR/местные/MySQL/Библиотека -lmysqlclient -lpthread

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

  1. только собирается перейти на Python 2.7, а затем переустановить mysqldb.

ВОПРОС:

Успешно установка Джанго и продолжить среду 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 

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

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

<https://stackoverflow.com/questions/7335853/mysql-python-installation-problems-on-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, а затем перекомпилировали из источника:

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

ответ

0

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

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

brew install mysql 
pip install MySQL-python 
+0

Спасибо за ваш ответ, но я действительно нашел решение моей проблемы. Пояснив сообщение об ошибке, мне просто нужно было создать символический файл libmysqlclient.18.dylib следующим образом: sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib/usr/lib/libmysqlclient.18.dylib –

8

Судо пер -s /usr/local/mysql/lib/libmysqlclient.18.dylib/USR/Lib /libmysqlclient.18.dylib

Смежные вопросы