在 Python Django 中加载 Mysqldb 模块时出错

Posted

技术标签:

【中文标题】在 Python Django 中加载 Mysqldb 模块时出错【英文标题】:Error loading Mysqldb module in Python Django 【发布时间】:2015-06-20 07:18:21 【问题描述】:

我目前正在使用 Ubuntu 14.10/Python/Django/mysql 并在尝试运行时遇到以下错误:

$python manage.py makemigrations polls

$python manage.py migrate polls

我也试过syncdb 错误是:

(Aaronpythonenv)aaron@aaron-N550JK:~/mysite$ python manage.py makemigrations polls 回溯(最近一次通话最后): 文件“manage.py”,第 10 行,在 execute_from_command_line(sys.argv) 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/init.py”,行338,在execute_from_command_line中 实用程序.execute() 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/core/management/init.py”,行312,在执行中 django.setup() 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/init.py”,第 18 行,在设置中 apps.populate(settings.INSTALLED_APPS) 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/apps/registry.py”,第 108 行,在填充 app_config.import_models(all_models) 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/apps/config.py”,第 198 行,在 import_models self.models_module = import_module(models_module_name) import_module 中的文件“/usr/lib/python2.7/importlib/init.py”,第 37 行 进口(名称) 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/contrib/auth/models.py”,第 41 行,在 类权限(模型。模型): 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/models/base.py”,第 139 行,在 new new_class.add_to_class('_meta', Options(meta, **kwargs)) 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/models/base.py”,第 324 行,在 add_to_class value.contribute_to_class(cls, 名称) 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/models/options.py”,第250行,在contribute_to_class self.db_table = truncate_name(self.db_table, connection.ops.max_name_length()) 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/init.py”,第 36 行,在 getattr 中 返回getattr(连接[DEFAULT_DB_ALIAS],项目) 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/utils.py”,第 240 行,在 getitem强> 后端 = load_backend(db['ENGINE']) 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/utils.py”,第 111 行,在 load_backend return import_module('%s.base' % backend_name) import_module 中的文件“/usr/lib/python2.7/importlib/init.py”,第 37 行 进口(名称) 文件“/home/aaron/Aaronpythonenv/local/lib/python2.7/site-packages/Django-1.8-py2.7.egg/django/db/backends/mysql/base.py”,第 27 行,在 raise ImproperlyConfigured("加载 MySQLdb 模块时出错:%s" % e) django.core.exceptions.ImproperlyConfigured:加载 MySQLdb 模块时出错:没有名为 MySQLdb 的模块

我已经使用 PIP 将 mysql-python 安装到我的环境中,但我收到了另一个错误。然后我使用 sudo apt-get 命令安装更正了 PIP 出现的错误。

非常感谢您,如果我需要添加任何其他内容,请告诉我。

【问题讨论】:

请注意,如果您在 virtualenv 中工作,apt-get 不会在其中安装库。使用 pip freeze 命令检查 MySQLdb 是否安装在您的 virtualenv 中 @karec 谢谢,我已经试过了。当我搜索 Virtualenv(和我的 env 文件夹)时,我已经对版本感到满意,在我插入类之前一切正常,但我遵循 Django 指南并很快完成 你能用 pip freeze 输出和 settings.py 文件中的 Databases 部分更新你的帖子吗?我去看看 【参考方案1】:

我遇到了类似的问题。请尝试以下步骤:

1)。将pip 升级到最新版本。

sudo pip install pip --upgrade

2)。构建 python-mysqldb 库的依赖项:

sudo apt-get build-dep python-mysqldb

3)。安装 Python MySQL 库:

sudo pip install MySQL-python

【讨论】:

【参考方案2】:

我认为这意味着没有名为 mysqldb 的模块。 您只需要设置 mysqldb 模块。 例如,如果你使用 ubuntu,你只需要运行这个命令:

sudo apt-get install python-mysqldb

然后你的问题就会得到解决!

【讨论】:

以上是关于在 Python Django 中加载 Mysqldb 模块时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 CPanel 中使用 Python 在 Django 管理面板中加载静态文件

Python Mysql 在文件中加载数据

在 Django 中加载 CSS/图像

在 django 开发中加载静态文件时出现 404 错误

在 Django 应用程序中加载 TensorFlow 模型的位置

无法在 django 中加载图像