导入错误:没有名为 MySQLdb 的模块

问题描述 投票:0回答:17

我参考以下教程为我的网络应用程序制作登录页面。 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 mysql flask sqlalchemy mysql-python
17个回答
386
投票

如果您在编译二进制扩展时遇到问题,或者在无法编译的平台上,您可以尝试使用纯 python

PyMySQL
绑定。

只需

pip install pymysql
并将您的 SQLAlchemy URI 切换为如下所示:

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

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


104
投票

或者试试这个:

apt-get install python-mysqldb

43
投票

你可以尝试吗

pip install mysqlclient

20
投票

我的问题是:

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

以及我的决心:

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

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


16
投票

我在使用 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

10
投票

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

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

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

sudo pip install mysql-python

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


10
投票

所以我花了大约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 服务器时,我真的不喜欢使用开发安装,但不幸的是,这种配置是我可以采取的唯一最舒适的路径。


6
投票

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

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

3
投票

虽然 @Edward van Kuikanswer 是正确的,但它没有考虑到 virtualenv v1.7 及以上版本的问题

特别是在 Ubuntu 上通过

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

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

virtualenv --system-site-packages .venv


2
投票
yum install MySQL-python.x86_64

为我工作。


2
投票

适用于带有 python3 的 Ubuntu 20.04

 sudo apt-get install python3-mysqldb

默认情况下,这对我有用

创建sqlite引擎实例

engine = create_engine('mysql://用户名:密码@your_host/your_dbname')

pip install pymysql

创建sqlite引擎实例

create_engine('mysql://...


2
投票

我在安装 mySQL 连接器时遇到了同样的问题并已解决

pip install mysqlclient

更多详情-> SQLAlchemy 官方文档


1
投票

这就是我所做的:

首先,安装python包:

pip3 install PyMySQL

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

import pymysql
pymysql.install_as_MySQLdb()

这应该可以解决您的问题,以下一项是可选的,对于任何使用 SqlAlchemy 连接到 mysql 服务器的人来说:

更换

engine = create_engine("mysql://YOURMYSQLURL")
到:
engine = create_engine("mysql+pymysql://YOURMYSQLURL")


0
投票

有很多与权限相关的错误。你可能想尝试这个:

xcode-select --install

0
投票

sudo apt-get install python-mysqldb


0
投票

sudo apt-get install python3-mysqldb

pip3安装mysql客户端

为我工作


-1
投票

当我构建 pythonflask eccomerce web 应用程序时,我遇到了这种类型的错误

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

我通过托盘查看 Windows 10 上安装的 python 版本

这是Python 3.10

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

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

就OK了!

python --版本

3.8

pip --版本

python 3.8

所以安装连接器

pip 安装 MYSQL-PYTHON

安装成功

© www.soinside.com 2019 - 2024. All rights reserved.