簡體   English   中英

django.core.exceptions.ImproperlyConfigured:加載MySQLdb模塊時出錯:

[英]django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module:

我正在關注django教程,很多人都提出了這個問題,但我認為我的情況有點獨特,因為在安裝python-mysql后,當我嘗試做python manage.py syncdb時仍然會出現此錯誤,

我是一個virtualenv,因為我使用macports來管理我的python安裝我創建了virtualenv

virtualenv code/vdjango --no-site-packages --python=/opt/local/bin/python

在使用macports之前我安裝了django py27-django ,但是在創建了我的virtualenv之后我認為我將django安裝到virtualenv上更好,所以我使用了pip install django==1.5

根據django教程我編輯了我的settings.py文件,然后執行python manage.py syncdb,我最終得到以下錯誤:

[~/code/vdjango/newsite]$python manage.py syncdb
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 453, in execute_from_command_line
    utility.execute()
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 392, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 272, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/__init__.py", line 77, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/commands/syncdb.py", line 8, in <module>
    from django.core.management.sql import custom_sql_for_model, emit_post_sync_signal
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/core/management/sql.py", line 9, in <module>
    from django.db import models
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module>
    backend = load_backend(connection.settings_dict['ENGINE'])
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
    return getattr(connections[DEFAULT_DB_ALIAS], item)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
    backend = load_backend(db['ENGINE'])
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/db/utils.py", line 27, in load_backend
    return import_module('.base', backend_name)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/django/db/backends/mysql/base.py", line 17, in <module>
    raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: dlopen(/Users/mac-pro/code/vdjango/lib/python2.7/site-packages/_mysql.so, 2): Library not loaded: libmysqlclient.18.dylib
  Referenced from: /Users/mac-pro/code/vdjango/lib/python2.7/site-packages/_mysql.so
  Reason: image not found

為了確認我已經安裝了python-mysql包,我再次運行了pip安裝,

(vdjango)mac-pro@localhost:[~/code/vdjango/newsite]$pip install python-mysqldb
Downloading/unpacking python-mysqldb
  Could not find any downloads that satisfy the requirement python-mysqldb
No distributions at all found for python-mysqldb
Storing complete log in /Users/mac-pro/.pip/pip.log

那么這里發生了什么? 看起來我有我需要進一步完成教程的一切,但有些python / django抱怨沒有mysqldb。

我的libmysqlclient.18.dylib位於/ usr / local / mysql / lib /,但我的系統在/ usr / lib /中查找它。 我最終在/ usr / lib中創建了libmysqlclient.18.dylib的符號鏈接來修復問題。

1.)確保/ usr / local / mysql / lib /中存在libmysqlclient.18.dylib。

打開你的shell。

sudo -s
ls /usr/local/mysql/lib/ | grep libmysqlclient.18.dylib

你應該看到文件:

libmysqlclient.18.dylib

如果沒有,請在系統中搜索文件的位置:

find / -name libmysqlclient.18.dylib

2.)在/ usr / lib中創建libmysqlclient.18.dylib的符號鏈接

在shell中輸入以下命令:

ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib

如果您的libmysqlclient.18.dylib文件不在/ usr / local / mysql / lib中,請使用libmysqlclient.18.dylib的正確路徑替換第一個路徑。

希望這會有所幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM