3

我的设置:

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

但是我读了这个问题/解决方案,证明它成功地解决了它。我安装了 django,它运行良好,但 mysql 接口有问题。当我启动终端并输入:

>> python manage.py dbshell

产生以下错误:

回溯(最后一次调用):文件“manage.py”,第 11 行,在 execute_manager(settings) 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/ core/management/ init .py”,第 438 行,在 execute_manager utility.execute() 文件中“/Library/Frameworks/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/核心/管理/初始化.py”,第 261 行,在 fetch_command klass = 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 模块 = import_module('%s.management.commands.%s' % (app_name, name)) 文件“/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/ core/management/commands/dbshel​​l.py”,第 4 行,从 django.db 导入连接,DEFAULT_DB_ALIAS 文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/站点包/django/db/init .py”,第 77 行,连接 = 连接 [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'])文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py”中,行33、在load_backend return import_module('.base', backend_name) 文件“/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 ImproperlyConfigured("Error加载 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

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

4

3 回答 3

5

导出 DYLD_LIBRARY_PATH=/usr/local/mysql/lib:$DYLD_LIBRARY_PATH

或者:

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

在 virtualenv 中帮助我

于 2011-09-12T17:42:04.323 回答
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/local/mysql/lib') os.environ['DYLD_LIBRARY_PATH'] = '/usr/local/mysql/lib' 不走运......似乎Apache不读这个环境变量,python 在这种情况下也没有(它没有读取我的 .bash_profile 文件)......帮助!

于 2011-03-11T07:32:07.123 回答
0

Try:

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

Instead of just mysql, if you're running Django 1.2.5.

于 2011-03-07T01:46:31.000 回答