ImportError:没有名为MySQLdb的模块

use*_*194 105 python mysql sqlalchemy mysql-python flask

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

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

ImportError: No module named MySQLdb
Run Code Online (Sandbox Code Playgroud)

当我执行

http://127.0.0.1:5000/testdb
Run Code Online (Sandbox Code Playgroud)

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

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

请帮忙.可能导致这种情况的原因.

Daz*_*all 235

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

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

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://.....'
Run Code Online (Sandbox Code Playgroud)

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

  • 在寻找 Flask-sqlalchemy 错误的解决方案时,这个帮助很大。我遇到: 1. 运行 WSGI 应用程序时出错 ModuleNotFoundError:没有名为“MySQLdb”的模块 2. (_mysql_exceptions.OperationalError) (2006,“SSL 连接错误:SSL_CTX_set_tmp_dh 失败”)(此错误的背景位于:http://sqlalche.me /e/e3q8)非常感谢您,我希望其他人能像我一样更快地找到带有此错误描述的解决方案! (2认同)

Edw*_*uik 91

或试试这个:

apt-get install python-mysqldb
Run Code Online (Sandbox Code Playgroud)

  • 我认为问题的答案是这个 (9认同)
  • 实际上这个人没有为我工作:( (9认同)
  • python-mysqldb 有一些依赖项,如 VC++ 库,有时在 64 位操作系统上不起作用 (2认同)

小智 18

你可以试试吗

pip install mysqlclient
Run Code Online (Sandbox Code Playgroud)

  • 在 python 3.7.3 上为我工作 (2认同)

小智 16

我的问题是:

return __import__('MySQLdb')
ImportError: No module named MySQLdb
Run Code Online (Sandbox Code Playgroud)

我的决议:

pip install MySQL-python
yum install mysql-devel.x86_64
Run Code Online (Sandbox Code Playgroud)

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

  • `pip install MySQL-python`是的,那是票 (2认同)

Was*_*lik 15

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

engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')
Run Code Online (Sandbox Code Playgroud)

No module named MySQLdb执行上述命令时出现" "错误.为了解决这个问题,我安装了mysql-python模块并解决了问题.

sudo pip install mysql-python
Run Code Online (Sandbox Code Playgroud)

  • 在安装mysql-python之前,你仍然需要安装mysql或者包含msyql_config命令的东西. (2认同)

seo*_*lee 7

这取决于Python版本以及我的经验.

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

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

sudo pip install mysql-python
Run Code Online (Sandbox Code Playgroud)

这将安装'MySQLdb'模块,而无需更改SQLAlchemy URI.

  • 如果有人在这里,并得到环境错误:找不到mysql_config有点事,那么sudo apt-get install libmysqlclient-dev可以帮到你.原始答案:http://stackoverflow.com/a/5178698/2190689 (2认同)

小智 7

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

./manage.py makemigrations
Run Code Online (Sandbox Code Playgroud)

使用 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
Run Code Online (Sandbox Code Playgroud)

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

pip install mysqlclient
Run Code Online (Sandbox Code Playgroud)

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


Dac*_*hao 6

在 ubuntu 20 中,您可以尝试以下操作:

sudo apt-get install libmysqlclient-dev
sudo apt-get install gcc
pip install mysqlclient
Run Code Online (Sandbox Code Playgroud)