首页 文章

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

提问于
浏览
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语句:

import MySQLdb

但我读到这个question/solution,证明它是成功的 . 我安装了django,它工作得很好,但它有mysql接口的问题 . 当我点火终端并键入:

>> python manage.py dbshell

生成以下错误:

Traceback(最近一次调用最后一次):文件“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(子命令).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中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 module = 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/dbshell.py”,第4行,来自django.db导入连接,DEFAULT_DB_ALIAS文件“/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/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后端= load_backend(db ['ENGINE'])文件” /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/django/db/utils.py“,第33行,在load_backend中返回import_module(' . base',backend_name)文件”/ Library / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / site-packages / django / utils / importlib.py“,第35行,在import_module import(name)文件”/Library/Frameworks/Python.framework /Versions/2.7/lib/python2.7/site-packages/django/db/backends/mysql/base.py“,第14行,in raise ImproperlyC onfigured(“加载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-egg-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

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

3 回答

  • 0

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

    要么:

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

    帮助我在virtualenv内

  • 5

    我有一个类似的问题,我通过在我的.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文件)...帮助!

  • 2

    尝试:

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

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

相关问题