ImportError:没有名为MySQLdb的模块

我指的是以下教程为我的Web应用程序做一个login页面。 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 

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

你可以试试

 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。 希望这可以帮助。

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

如果你正在使用Python 3,@DazWorrall答案对我来说工作的很好。

但是,如果你使用Python 2,你应该

 sudo pip install mysql-python 

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

虽然@Edward van Kuik的回答是正确的,但它并没有考虑到virtualenv v1.7及以上的问题 。

特别是在Ubuntu上通过apt安装python-mysqldb把它放到/usr/lib/pythonX.Y/dist-packages下,但是这个path在virtualenv的sys.path是不包含的。

所以为了解决这个问题 ,你应该使用系统包来创build你的virtualenv:

virtualenv --system-site-packages .venv

所以我花了大约5个小时试图找出如何处理这个问题,当试图运行

 ./manage.py makemigrations 

随着Ubuntu服务器LTS 16.1,一个完整的LAMP堆栈,Apache2 MySql 5.7 PHP 7的Python 3和Django 1.10.2我真的很难find一个很好的答案。 事实上,我仍然不满意,但唯一的解决scheme是为我工作的是…

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

其次(从虚拟环境内部)

 pip install mysqlclient 

我真的不喜欢使用dev安装,当我试图build立一个新的web服务器,但不幸的是,这个configuration是我唯一可以采取的最舒适的path。

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

 xcode-select --install