2011-03-04 76 views
3

我的設置:錯誤與配置Django的蟒蛇,在mysql的Mac OS 10.6.6

  • 的Mac OS 10.6.6 - x86_64的
  • 的MySQL 5.5.8
  • 的Python 2.7.1
  • 的Django通過easy_install的

我的情況1.2.5安裝

  • 的mysql-python的:

    我一直在努力讓我的設置工作。問題在於mysql-python界面。本來,我得到了類似的問題(在一個我與Django的有)在Python中的import語句:

    import MySQLdb 
    

    但我讀這question/solution被證明成功修復它。 我安裝了django,它工作的很好,但它與mysql接口有問題。 當我火了終端和類型:生成

    >> python manage.py dbshell 
    

    以下錯誤:

    回溯(最近通話最後一個): 文件 「manage.py」,第11行,在 execute_manager (設置) 文件「/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/ init .py」,第438行,在execute_manager 實用程序中。執行() 文件「/ Library/Framewo rks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/init .py「,第379行,執行 self.fetch_command(subcommand).run_from_argv(self。的argv) 文件 「/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/ INIT py」 爲,線261,在fetch_command 克拉斯= load_command_class (app_name,subcommand) 文件「/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/ init .py」,第67行,在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「,第35行,in import_module import(name) File」/Library/Frameworks/Python.framework/版本/ 2.7/lib/python2.7/site-packages/django/core/management/commands/dbshel​​l.py「,第4行,來自django.db的 導入連接,DEFAULT_DB_ALIAS 文件」/ Library/Frameworks/Python。 framework/Versions/2.7/lib/python2.7/site-packages/django/db/init .py「,line 77,in connection = connections [DEFAULT_DB_ALIAS] File」/Library/Frameworks/Python.framework/版本/ 2.7/lib/python2.7/site-packages/django/db/utils.py「,第92行,在getitem backend = load_backend(db ['ENGINE']) 文件「/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py」,第33行, in load_backend return import_module('。基地',後端名稱) 文件「/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py」,第35行,在import_module 導入(名稱) 文件「/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/mysql/base.py」,第14行,在 中raise raiselyconfigured(「加載MySQLdb模塊時出錯:%s「%e) django.core.exceptions.ImproperlyConfigured:加載MySQLdb模塊時出錯:dlopen(/Users/adogc45/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6 -intel.egg-tmp/_mysql.so,2):未加載庫:libmysqlclient.16.dylib 引用自:/Users/adogc45/.python-eggs/MySQL_python-1.2.3-py2.7-macosx-10.6 -intel.egg-tmp/_mysql.so 原因是:圖片找不到

    現在,我不明白爲什麼在Python中導入模塊不會引發錯誤,但在django中使用mysql接口。

    順便說一句,我的settings.py看起來是這樣的:

    DATABASES = { 
    'default': { 
        'ENGINE': 'mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'. 
    

    此外,圖像實際上退出在.../MySQL_python-1.2.3-py2.7-MacOSX的-10.6-intel.egg- tmp

    所以,我不知道發生了什麼事。

  • +0

    感謝彼得和elithrar內的指出兩件事情我失蹤(請參閱下面的答案)。這些解決了我的問題。 – adogc45 2011-03-12 17:59:58

    回答

    0

    嘗試:

    DATABASES = { 
    'default': { 
        'ENGINE': 'django.db.backends.mysql', 
    

    ,而不是僅僅mysql,如果你正在運行的Django 1.2.5。

    +0

    我也建議安裝[pip](http://pypi.python.org/pypi/pip)而不是easy_install,因爲它可以更可靠一點。 – elithrar 2011-03-07 01:49:08

    +0

    嗨,謝謝!我將'mysql'改爲'django.db.backends.mysql'以使其工作。 – adogc45 2011-03-12 17:58:02

    2

    我也有類似的問題,我通過包括(其中運行shell我〜目錄魔術文件)在我的.bash_profile文件中這一行解決了發展計劃: 出口DYLD_LIBRARY_PATH =在/ usr /本地/ MySQL的/ lib/ 其中有問題的libmysqlclient.16.dylib位於該目錄中。

    但是,當我嘗試在Apache中作爲python wsgi模塊運行時,無論我做什麼,Apache都找不到libmysqlclient.16.dylib。我試過 sys.path.append('/ usr/local/mysql/lib') os.environ ['DYLD_LIBRARY_PATH'] ='/ usr/local/mysql/lib' 沒有運氣... 好像是Apache不讀這個環境變量,在這種情況下也不python(它不讀取我的.bash_profile文件)...幫助!

    +0

    嗨,謝謝,我不得不在我的.bash_profile中導出該路徑! – adogc45 2011-03-12 17:57:04

    5

    出口DYLD_LIBRARY_PATH =在/ usr /本地/ MySQL的/ lib目錄下:$ DYLD_LIBRARY_PATH

    或:

    pip install MySQL-python 
    pip install --upgrade MySQL-python 
    

    幫了我的virtualenv

    +1

    出口路徑是爲我工作的! – Civilian 2012-11-16 22:43:38