簡體   English   中英

Django manage.py syncdb throw沒有名為MySQLdb的模塊

[英]Django manage.py syncdb throwing No module named MySQLdb

我是學習Python / Django的新手......

我正在使用此處的以下教程。

在Snow Leopard上運行的MySQL 5中創建了一個mysite數據庫。

編輯settings.py文件如下所示:

DATABASE_ENGINE = 'mysql'        
DATABASE_NAME = 'mysite'             
DATABASE_USER = 'root'             
DATABASE_PASSWORD = ''       
DATABASE_HOST = ''            
DATABASE_PORT = ''             

現在,當我運行以下命令時:

python manage.py syncdb

我收到以下錯誤:

Traceback (most recent call last):
File "manage.py", line 11, in <module>
  execute_manager(settings)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
  python2.6/site-packages/django/core/management/__init__.py", line 362,
  in execute_manager
  utility.execute()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
  python2.6/site-packages/django/core/management/__init__.py", line 303,
  in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
  python2.6/site-packages/django/core/management/base.py", line 195, in
  run_from_argv
  self.execute(*args, **options.__dict__)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
  python2.6/site-packages/django/core/management/base.py", line 221, in
  execute
  self.validate()
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
  python2.6/site-packages/django/core/management/base.py", line 249, in
  validate
  num_errors = get_validation_errors(s, app)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
  python2.6/site-packages/django/core/management/validation.py", line
  22, in get_validation_errors
  from django.db import models, connection
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
  python2.6/site-packages/django/db/__init__.py", line 41, in <module>
  backend = load_backend(settings.DATABASE_ENGINE)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages  
   /django/db/__init__.py", line 17, in load_backend
   return import_module('.base', 'django.db.backends.%s' %backend_name)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/
  python2.6/site-packages/django/utils/importlib.py", line 35, in import_module
  __import__(name)
File "/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages       /django/db/backends/mysql/base.py", line 13, in <module>
   raise ImproperlyConfigured("Error loading MySQLdb module: %s" % e)
   django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb
   module: No module named MySQLdb

我可能做錯了什么?

編程愉快......

sudo easy_install mysql-python

將安裝MySQLdb模塊以允許您從Python使用MySQL,或者,如果您想使用virtualenv(您應該),

sudo easy_install virtualenv virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs
export PIP_VIRTUALENV_BASE=$WORKON_HOME
source /usr/local/bin/virtualenvwrapper_bashrc
mkvirtualenv mysite
pip install mysql-python django

將你帶入當前安裝的django(你可以指定哪個版本,例如django == 1.1.1)和安裝了MySQLdb模塊的virtualenv。 使用virtualenv將允許您為不同的項目提供單獨的環境,因此您可以安裝不同的模塊,甚至可以為不同的項目使用這些模塊(或Python)的不同版本。 離開你virtualenv只需輸入命令

deactivate

或者,切換到環境'foo'類型

workon foo

您還應該,如果您要使用virtualenv將這三行添加到〜/ .bash_profile(在OS X上,〜/ .bashrc一般在Linux上):

export WORKON_HOME=$HOME/.virtualenvs # where virtualenvs should be created
export PIP_VIRTUALENV_BASE=$WORKON_HOME # tells pip where to look for virtualenvs
source /usr/local/bin/virtualenvwrapper_bashrc # bash completion and wrapper functions for virtualenv

問題是你缺少與MySQL接口的Python模塊。

請參閱Django文檔以獲取正在運行的數據庫,這些文檔進一步指向MySQL注釋

但是,如果您只是閱讀本教程,那么使用內置於Python的SQLite后端會更容易。 不需要驅動程序,服務器等。

值得指出(即使在這個較晚的日期)下面的“不正確配置”錯誤

文件“/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages /django/db/backends/mysql/base.py”,第13行,in
raise ImproperlyConfigured(“加載MySQLdb模塊時出錯:%s”%e)django.core.exceptions.ImproperlyConfigured:加載MySQLdb模塊時出錯:沒有名為MySQLdb的模塊

在mysql沒有運行的情況下可以是一個紅色的鯡魚 - 我只是自己搜索這個錯誤,想知道為什么錯誤配置'突然'出現了,而在搜索和刺激時我運行了一些其他manage.py命令並得到了類似的但是更有幫助,錯誤:

init中的文件“〜/ .virtualenvs / mdid3 / lib / python2.7 / site-packages / MySQLdb / connections.py”,第187行

超級(連接,自我)。 init (* args,** kwargs2)

_mysql_exceptions.OperationalError:(2003,“無法連接到'127.0.0.1上的MySQL服務器'(61)”)

檢查mysqld后,發現它沒有運行並啟動它 - 奇跡般地修復了我的配置錯誤!

如果您使用,請嘗試此操作

linux: - sudo apt-get install python-mysqldb

windows: - pip install python-mysqldbeasy_install python-mysqldb

希望這應該有效

確保創建數據庫並運行MySQL服務器嘗試連接數據庫以檢查數據庫名稱,用戶名和密碼是否正確。 然后運行:

1) pip install mysqlclient

2) python manage.py migrate

暫無
暫無

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

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