首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django manage.py同步数据库抛出没有名为MySQLdb的模块

Django manage.py同步数据库抛出没有名为MySQLdb的模块
EN

Stack Overflow用户
提问于 2009-11-17 13:52:15
回答 5查看 20.8K关注 0票数 10

我是一个学习Python/Django的新手。

我正在使用位于here的以下教程。

在雪豹上运行的MySQL 5中创建了一个mysite数据库。

编辑settings.py文件,使其如下所示:

代码语言:javascript
运行
复制
DATABASE_ENGINE = 'mysql'        
DATABASE_NAME = 'mysite'             
DATABASE_USER = 'root'             
DATABASE_PASSWORD = ''       
DATABASE_HOST = ''            
DATABASE_PORT = ''             

现在当我运行以下命令时:

代码语言:javascript
运行
复制
python manage.py syncdb

我收到以下错误:

代码语言:javascript
运行
复制
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

我可能做错了什么?

快乐的编程...

EN

回答 5

Stack Overflow用户

发布于 2009-11-17 22:01:54

代码语言:javascript
运行
复制
sudo easy_install mysql-python

我将安装MySQLdb模块以允许您在Python中使用MySQL,或者,如果您希望使用virtualenv (您应该这样做),

代码语言:javascript
运行
复制
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

我会把你放进一个virtualenv里面,里面有当前安装的django (你可以指定哪个版本,比如django==1.1.1)和安装的MySQLdb模块。使用virtualenv将允许您为不同的项目提供不同的环境,因此您可以安装不同的模块,甚至为不同的项目使用这些模块(或Python)的不同版本。要让您离开virtualenv,只需键入以下命令

代码语言:javascript
运行
复制
deactivate

或者,切换到环境'foo‘类型

代码语言:javascript
运行
复制
workon foo

如果您要使用virtualenv,还应该将以下三行添加到您的~/.bash_profile (在OS X上,通常在Linux上为~/.bashrc ):

代码语言:javascript
运行
复制
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
票数 14
EN

Stack Overflow用户

发布于 2009-11-17 14:01:23

问题是您缺少与MySQL交互的Python模块。

请参阅get your database running的Django文档,该文档进一步指向MySQL notes

但是,如果你只是在看教程,那么使用内置到SQLite中的Python要容易得多。不需要驱动程序、服务器等。

票数 12
EN

Stack Overflow用户

发布于 2012-11-01 03:00:54

值得指出的是(即使这么晚了)下面的"ImproperlyConfigured“错误

后端文件"/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages /django/db/

/mysql/base.py“,第13行,在

引发ImproperlyConfigured(“加载MySQLdb模块时出错:%s”% e) django.core.exceptions.ImproperlyConfigured:加载MySQLdb模块时出错:没有名为MySQLdb的模块

在mysql没有运行的情况下,这可能是转移注意力的事情--我自己也在谷歌上搜索这个错误,想知道为什么一个错误配置‘突然’出现了,同时我运行了一些其他的manage.py命令,得到了类似的,但更有帮助的错误:

文件"~/.virtualenvs/mdid3/lib/python2.7/site-packages/MySQLdb/connections.py",行,位于init

超级(连接,self).init(*args,**kwargs2)

_mysql_exceptions.OperationalError:(2003,"Can't connect to MySQL server on '127.0.0.1‘(61)")

在检查mysqld之后,发现它没有运行并启动它--我的配置错误奇迹般地被修复了!

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1746863

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档