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