Python django-加载MySQLdb模块时出错:没有名为MySQLdb的模块
我在Win7上使用Django 1.4.1和活动Python 2.7。我已经使用Python django-加载MySQLdb模块时出错:没有名为MySQLdb的模块,python,django,mysql-python,Python,Django,Mysql Python,我在Win7上使用Django 1.4.1和活动Python 2.7。我已经使用pypm安装MySQL-python安装了MySQL模块 数据库引擎是django.db.backends.mysql 导入MySQLdb在交互式shell中工作。 \manage.py syncdb创建表时没有问题。 但是,当我在浏览器中打开站点时,加载MySQLdb模块时出现错误:没有名为MySQLdb的模块: Environment: Request Method: GET Request URL: htt
pypm安装MySQL-python
安装了MySQL模块
数据库引擎是django.db.backends.mysql
导入MySQLdb
在交互式shell中工作。
\manage.py syncdb
创建表时没有问题。
但是,当我在浏览器中打开站点时,加载MySQLdb模块时出现错误:没有名为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
这是怎么可能的?问题是MySQLdb安装在我的主目录
C:\Users\alexei\AppData\Roaming\Python\Python27\site packages\
中,但它不在Python的路径中。因此,我使用pypm-uninstall-mysql-python
卸载了它,然后使用pypm-g-install-mysql-python
全局重新安装了它(注意-g
选项)
另一种方法是将该路径添加到wsgi.py
因此,如果其他人想知道,您可以像这样找到MySQLdb(或任何其他模块)的安装位置:
import MySQLdb
print MySQLdb.__file__
确保该路径在Django的错误消息中提供的Python路径列表中。我也遇到了这个问题,然后我将Python mysql安装到了我的系统中 pip安装mysql-python 然后它的工作 见此--> 在我的系统中工作>
$python manage.py syncdb
正在创建表…
正在创建表django\u admin\u log
创建表身份验证权限
正在创建表身份验证组权限
正在创建表身份验证组
最简单的方法是从二进制文件安装MySQLdb:
如果您正在使用和虚拟环境。你必须跑
cd virtualEnvPath
pip install MySQL-Python
不要忘记在虚拟环境中定位/bin路径,以使用本地pip。
问候 我通过以下方式配置了djando w/mysql: 1) 在.bashrc中设置
DJANGO\u设置\u模块
环境变量并将其源代码设置为
2) 更改此env_var和local_settings.py(如果有)指向的settings.py,如下所示(对于mysql):
3) 安装mysql开发库和头文件,确保mysql在路径上
sudo apt-get install libmysqlclient-dev
4) 安装mysql的python包
sudo pip install MySQL-python
5) 测试django对mysql数据库的访问:
python manage.py dbshell
或
6) 使用django应用程序将django从dir同步到mysql
python manage.py syncdb
如果您在未重新启动web服务器的情况下安装了MySQLdb,它可能还没有启动。我有一个脚本,可以检查更改并自动重新启动服务器。但没关系,我已经发现了问题,并将发布答案。啊,现在我意识到我没有正确阅读你的评论。我将Apache与mod_wsgi一起使用,而不是Django附带的开发服务器。MySQLdb模块是在几天前安装的,所以这不是问题。如果您收到一些类似于:for-package-MySQL-Python sh:MySQL\u-config:command-not-found的命令,那么您的命令将丢失:yum-install-Python-devel-MySQL-devel-->for CENTOS
python manage.py dbshell
django-admin dbshell
python manage.py syncdb