簡體   English   中英

django - 加載MySQLdb模塊時出錯:沒有名為MySQLdb的模塊

[英]django - Error loading MySQLdb module: No module named MySQLdb

我在Win7上使用Django 1.4.1和Active Python 2.7。 我使用pypm install mysql-python安裝了MySQL模塊。

數據庫引擎是django.db.backends.mysql

import MySQLdb在交互式shell中工作。

.\\manage.py syncdb創建表沒有問題。

但是,當我在瀏覽器中打開網站時,我收到Error loading MySQLdb module: No module named MySQLdb

Environment:


Request Method: GET
Request URL: http://whatever/

Django Version: 1.4.1
Python Version: 2.7.2
Installed Applications:
('django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "C:\Python27\lib\site-packages\django\core\handlers\base.py" in get_response
  89.                     response = middleware_method(request)
File "C:\Python27\lib\site-packages\django\contrib\sessions\middleware.py" in process_request
  10.         engine = import_module(settings.SESSION_ENGINE)
File "C:\Python27\lib\site-packages\django\utils\importlib.py" in import_module
  35.     __import__(name)
File "C:\Python27\lib\site-packages\django\contrib\sessions\backends\cached_db.py" in <module>
  6. from django.contrib.sessions.backends.db import SessionStore as DBStore
File "C:\Python27\lib\site-packages\django\contrib\sessions\backends\db.py" in <module>
  3. from django.db import IntegrityError, transaction, router
File "C:\Python27\lib\site-packages\django\db\__init__.py" in <module>
  40. backend = load_backend(connection.settings_dict['ENGINE'])
File "C:\Python27\lib\site-packages\django\db\__init__.py" in __getattr__
  34.         return getattr(connections[DEFAULT_DB_ALIAS], item)
File "C:\Python27\lib\site-packages\django\db\utils.py" in __getitem__
  92.         backend = load_backend(db['ENGINE'])
File "C:\Python27\lib\site-packages\django\db\utils.py" in load_backend
  24.         return import_module('.base', backend_name)
File "C:\Python27\lib\site-packages\django\utils\importlib.py" in import_module
  35.     __import__(name)
File "C:\Python27\lib\site-packages\django\db\backends\mysql\base.py" in <module>
  16.     raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)

Exception Type: ImproperlyConfigured at /
Exception Value: Error loading MySQLdb module: No module named MySQLdb

會話和消息應用程序的設置為:

SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"
MESSAGE_STORAGE = "django.contrib.messages.storage.cookie.CookieStorage"

這怎么可能?

問題是MySQLdb安裝在我的主目錄C:\\Users\\alexei\\AppData\\Roaming\\Python\\Python27\\site-packages\\ ,這不在Python的路徑中。 所以我用pypm uninstall mysql-python卸載它,然后使用pypm -g install mysql-python 全局重新安裝它(注意-g選項)。

另一種方法是將該路徑添加到wsgi.py中的sys.path.append("...path...") wsgi.py

所以,萬一其他人想知道,你可以找到MySQLdb(或任何其他模塊)的安裝位置,如下所示:

import MySQLdb
print MySQLdb.__file__

確保該路徑位於Django錯誤消息中提供的Python路徑列表中。

如果您正在使用和虛擬環境。 你必須跑

cd virtualEnvPath
pip install MySQL-Python

不要忘記在虛擬環境中定位。 / bin PATH,使用本地點。 問候!

我也遇到了這個問題然后我安裝了python mysql到我的系統

pip install mysql-python

然后它的工作人員 看到 - > 在我的系統中工作>>
$ python manage.py syncdb;
創建表格......
創建表django_admin_log
創建表auth_permission
創建表auth_group_permissions
創建表auth_group
.............工作

最簡單的方法是從二進制文件安裝MySQLdb: http ://www.lfd.uci.edu/~gohlke/pythonlibs/#mysql-python

我用以下方式配置了djando w / mysql:

1)在.bashrc中設置DJANGO_SETTINGS_MODULE環境變量並獲取它

2)更改此env_var和local_settings.py(如果有)指向的settings.py,如下所示(對於mysql):

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', 
        'NAME': 'DB_NAME',
        'USER': 'DB_USER',
        'PASSWORD': 'DB_PASSWORD',
        'HOST': 'localhost',   # Or an IP Address that your DB is hosted on
        'PORT': '3306',
    }
}

3)安裝mysql dev庫和頭文件,確保mysql在PATH上

sudo apt-get install libmysqlclient-dev

4)為mysql安裝python包

sudo pip install MySQL-python

5)測試django對你的mysql db的訪問:

python manage.py dbshell

要么

django-admin dbshell

6)用你的django應用程序從dir將django同步到mysql

python manage.py syncdb

暫無
暫無

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

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