在Mac OS 10.6.6中使用python-mysql配置django时出错

时间:2011-03-04 06:15:12

标签: python mysql django osx-snow-leopard mysql-python

我的设置:

  • Mac OS 10.6.6 - x86_64
  • MySQL 5.5.8
  • Python 2.7.1
  • Django 1.2.5
  • 通过easy_install安装mysql-python

我的情况:

我一直在努力让我的设置工作。问题出在mysql-python接口上。最初,我遇到了类似的问题(对于我正在使用的Django)在python中执行import语句:

import MySQLdb

但是我读到了question/solution,证明它已成功修复它。 我安装了django并且它工作得很好但是它遇到了mysql接口的问题。 当我点火终端并输入:

>> python manage.py dbshell

生成以下错误:

  

追踪(最近一次通话):     文件“manage.py”,第11行,in       execute_manager(设置)     在execute_manager中输入文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/init.py”,第438行       utility.execute()     文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/init.py”,第379行,执行       self.fetch_command(子命令).run_from_argv(self.argv)     在fetch_command中输入文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/init.py”,第261行       klass = load_command_class(app_name,子命令)     在load_command_class中输入文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/init.py”,第67行       module = import_module('%s.management.commands。%s'%(app_name,name))     在import_module中输入文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py”,第35行       导入(名称)     文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/core/management/commands/dbshel​​l.py”,第4行,in       来自django.db导入连接,DEFAULT_DB_ALIAS     文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/init.py”,第77行,       connection = connections [DEFAULT_DB_ALIAS]     文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py”,第92行, getitem       backend = load_backend(db ['ENGINE'])     在load_backend中输入文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py”,第33行       return import_module('。base',backend_name)     在import_module中输入文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/utils/importlib.py”,第35行       导入(名称)     文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/backends/mysql/base.py”,第14行,in       raise ImproperlyConfigured(“加载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接口呢。

BTW,我的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

所以,我不知道发生了什么。

3 个答案:

答案 0 :(得分:5)

export DYLD_LIBRARY_PATH = / usr / local / mysql / lib:$ DYLD_LIBRARY_PATH

或:

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

在virtualenv中帮助我

答案 1 :(得分:2)

我有一个类似的问题,我通过将此行包含在我的.bash_profile文件(我的〜目录中运行shell的魔术文件)中为开发程序解决了这个问题: export DYLD_LIBRARY_PATH = / usr / local / mysql / lib / 其中有违规的libmysqlclient.16.dylib在该目录中。

然而,当我尝试在Apache中运行它作为python wsgi模块时,无论我做什么,Apache都找不到libmysqlclient.16.dylib。我试过了 sys.path.append( '的/ usr /本地/ MySQL的/ lib中') os.environ ['DYLD_LIBRARY_PATH'] ='/ usr / local / mysql / lib' 没运气... 似乎Apache没有读取这个环境变量,在这个上下文中也没有读取python(它没有读取我的.bash_profile文件)... help !!!

答案 2 :(得分:0)

尝试:

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

如果您正在运行Django 1.2.5,而不仅仅是mysql