2012-10-07 83 views
4

我在Win7上使用Django 1.4.1和Active Python 2.7。我已經使用pypm install mysql-python安裝了MySQL模塊。數據庫引擎django.db.backends.mysqldjango - 加載MySQLdb模塊時出錯:沒有名爲MySQLdb的模塊

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" 

這怎麼可能?

+0

如果您在不重新啓動Web服務器的情況下安裝了MySQLdb,它可能還沒有啓動它。 –

+0

我有一個腳本,檢查更改自動重新啓動服務器。但是沒關係,我已經找到了問題,並會發佈一個答案。 – Alexei

+0

啊,現在我意識到我沒有正確閱讀你的評論。我使用的是mod_wsgi的Apache,而不是Django附帶的開發服務器。 MySQLdb模塊幾天前安裝完畢,所以這不成問題。 – Alexei

回答

3

問題在於MySQLdb安裝在我的主目錄C:\Users\alexei\AppData\Roaming\Python\Python27\site-packages\中,該目錄不在Python的路徑中。因此,我使用pypm uninstall mysql-python將其卸載,然後使用pypm -g install mysql-python(注意-g選項)將其重新安裝到全局

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

所以,如果有人想知道,你能找出MySQLdb的(或任何其他模塊)安裝,像這樣:

import MySQLdb 
print MySQLdb.__file__ 

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

1

我也面臨這個問題,那麼我安裝了MySQL的蟒蛇到我的系統

PIP安裝mysql-python的

那麼它workes 看到這個 - > 在我的工作系統>>
$ python manage.py syncdb;

創建表...
創建表django_admin_log
創建表auth_permission
創建表auth_group_permissions
創建表auth_group
.............工作

2

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

cd virtualEnvPath 
pip install MySQL-Python 

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

+0

如果您收到了一些類似: 用於包裝的MySQL的Python SH:mysql_config:找不到命令 然後你缺少: 百勝安裝python-devel的的mysql-devel的---->爲CentOS – user7828

1

我配置djando瓦特/ MySQL的方式如下:

1)設置DJANGO_SETTINGS_MODULE環境變量中的.bashrc和源它

2)變化settings.py通過此ENV_VAR和local_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的是在路徑

python manage.py dbshell 

django-admin dbshell 

6)同步的django到MySQL:3210

4)

sudo pip install MySQL-python 

5)測試Django的訪問安裝python包爲MySQL到您的MySQL數據庫dir與您的django應用程序

python manage.py syncdb 
相關問題