Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django-加载MySQLdb模块时出错:没有名为MySQLdb的模块_Python_Django_Mysql Python - Fatal编程技术网

Python django-加载MySQLdb模块时出错:没有名为MySQLdb的模块

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

我在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: 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