![](/img/trans.png)
[英]python manage.py syncdb error: No module named south. Django installation outside Virtualenvwrapper called
[英]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-mysqldb
或easy_install python-mysqldb
希望這應該有效
確保創建數據庫並運行MySQL服務器嘗試連接數據庫以檢查數據庫名稱,用戶名和密碼是否正確。 然后運行:
1) pip install mysqlclient
2) python manage.py migrate
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.