2012-01-01 36 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/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 
    

    我SETU p是:

    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/> 
    

    我曾嘗試使用以下命令,然後從重新安裝的.dmg卸載MySQL的:

    • 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* 
    

    卸載

    :使用PIP和那麼MySQL-Python從源重新編譯
    sudo ARCHFLAGS='-arch x86_64' python setup.py build 
    sudo ARCHFLAGS='-arch x86_64' python setup.py install 
    

    我要去哪裏錯了,是不是因爲MySQL客戶配置不正確,此版本的MySQL的Python的?

    回答

    0

    我通常在我的Mac上使用Homebrew安裝MySQL(這是一個非常痛苦的過程),並且「我找不到圖像」是我在升級MySQL版本之後看到的,沒有重新安裝MySQL-python。

    我的建議是卸載的MySQL和MySQL的Python,安裝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 – 2012-01-02 16:40:47

    8

    須藤LN -s /usr/local/mysql/lib/libmysqlclient.18.dylib/usr/lib目錄/libmysqlclient.18.dylib