繁体   English   中英

ImportError:没有名为 MySQLdb 的模块

[英]ImportError: No module named MySQLdb

我指的是以下教程来为我的 Web 应用程序创建一个登录页面。 http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out--net-29982

我遇到了数据库问题。 我得到一个

ImportError: No module named MySQLdb

当我执行

http://127.0.0.1:5000/testdb

我已经尝试了所有可能的安装python mysql的方法,教程中提到的一种,easy_install,sudo apt-get install。

我已经在我的虚拟环境中安装了 mysql。 我的目录结构与教程中解释的相同。 该模块已成功安装在我的系统中,但我仍然收到此错误。

请帮忙。 这可能是什么原因造成的。

如果你在编译二进制扩展时遇到问题,或者在你不能的平台上,你可以尝试使用纯 python PyMySQL绑定。

只需pip install pymysql并切换您的 SQLAlchemy URI 以像这样开始:

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://.....'

您也可以尝试其他一些驱动程序

或者试试这个:

apt-get install python-mysqldb

你可以试试

pip install mysqlclient

我的问题是:

return __import__('MySQLdb')
ImportError: No module named MySQLdb

和我的决议:

pip install MySQL-python
yum install mysql-devel.x86_64

一开始,我只是安装了 MySQL-python,但问题仍然存在。 所以我认为如果这个问题发生了,你也应该考虑 mysql-devel 。 希望这可以帮助。

我在研究 SQLAlchemy 时遇到了这个问题。 SQLAlchemy for MySQL 使用的默认方言是mysql+mysqldb

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')

执行上述命令时出现“ No module named MySQLdb ”错误。 为了修复它,我安装了mysql-python模块并且问题得到了修复。

sudo pip install mysql-python

所以我花了大约 5 个小时试图弄清楚在尝试运行时如何处理这个问题

./manage.py makemigrations

使用 Ubuntu Server LTS 16.1、完整的 LAMP 堆栈、Apache2 MySql 5.7 PHP 7 Python 3 和 Django 1.10.2,我真的很难找到一个好的答案。 事实上,我仍然不满意,但唯一对我有用的解决方案是......

sudo apt-get install build-essential python-dev libapache2-mod-wsgi-py3 libmysqlclient-dev

其次是(从虚拟环境内部)

pip install mysqlclient

当我尝试设置新的 Web 服务器时,我真的不喜欢必须使用开发安装,但不幸的是,这种配置是我可以采用的唯一最舒服的路径。

根据我的经验,这也取决于 Python 版本。

如果您使用的是 Python 3,@DazWorrall 的回答对我来说效果很好。

但是,如果您使用的是 Python 2,则应该

sudo pip install mysql-python

这将安装“MySQLdb”模块,而无需更改 SQLAlchemy URI。

在 ubuntu 20 中,你可以试试这个:

sudo apt-get install libmysqlclient-dev
sudo apt-get install gcc
pip install mysqlclient

虽然@Edward van Kuik回答是正确的,但它没有考虑virtualenv v1.7 及更高版本的问题

特别是在 Ubuntu 上通过apt安装python-mysqldb将其放在/usr/lib/pythonX.Y/dist-packages下,但默认情况下此路径不包含在 virtualenv 的sys.path中。

因此,要解决这个问题,您应该通过运行以下命令来使用系统包创建您的 virtualenv:

virtualenv --system-site-packages .venv

yum install MySQL-python.x86_64

为我工作。

对于带有 python3 的 Ubuntu 20.04

 sudo apt-get install python3-mysqldb

默认情况下,这对我有用

创建一个 sqlite 引擎实例

engine = create_engine('mysql://username:password@your_host/your_dbname')

或者

pip install pymysql

创建一个 sqlite 引擎实例

create_engine('mysql://...

有很多与权限相关的错误,什么不是。 你可能想试试这个:

xcode-select --install

sudo apt-get install python-mysqldb

这是我所做的:

首先,安装一个python包: pip3 install PyMySQL

然后将以下代码行添加到您的项目中:

import pymysql
pymysql.install_as_MySQLdb()

现在这应该可以解决您的问题,以下是可选的,适用于使用 SqlAlchemy 连接到 mysql 服务器的任何人:

engine = create_engine("mysql://YOURMYSQLURL")替换为: engine = create_engine("mysql+pymysql://YOURMYSQLURL")

当我托盘构建 python flask eccomerce web-application 时,我遇到了这种类型的错误

ModuleNotFoundError:没有名为“MySQLdb”的模块?

我托盘查看安装在我的窗口 10 上的 python 版本

这是python 3.10

所以 MYSQL-PYTHON 兼容其他版本的 python 3.8

我删除了 python 3.10 并安装了 python 3.8 版本

变好了!

蟒蛇--版本

3.8

点子--版本

蟒蛇3.8

所以安装连接器

点安装 MYSQL-PYTHON

安装成功

我有同样的问题,安装 mySQL 连接器并解决了

pip install mysqlclient

更多细节-> SQLAlchemy 官方文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM