ImportError:没有名为MySQLdb的模块

时间:2014-03-07 14:12:16

标签: python mysql flask mysql-python

我指的是以下教程,为我的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。我的目录结构与本教程中解释的相同。该模块已成功安装在我的系统中,但我仍然收到此错误。

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

11 个答案:

答案 0 :(得分:204)

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

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

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

您也可以尝试一些other drivers

答案 1 :(得分:16)

我的问题是:

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

和我的决议:

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

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

答案 2 :(得分:13)

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

答案 3 :(得分:12)

你可以试试吗

--net-alias=ALIAS

答案 4 :(得分:7)

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

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

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

sudo pip install mysql-python

将安装' MySQLdb'模块,而不必更改SQLAlchemy URI。

答案 5 :(得分:4)

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

答案 6 :(得分:3)

虽然@Edward van Kuik' answer是正确的,但它并未考虑issue with virtualenv v1.7 and above

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

所以to resolve this,你应该通过运行类似的东西来创建你的virtualenv系统包:

virtualenv --system-site-packages .venv

答案 7 :(得分:0)

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

xcode-select --install

答案 8 :(得分:0)

yum install MySQL-python.x86_64

为我工作。

答案 9 :(得分:0)

在ubuntu 20中,您可以尝试以下方法:

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

答案 10 :(得分:0)

sudo apt-get install python-mysqldb