问题:ImportError:没有名为MySQLdb的模块
I am referring the following tutorial to make a login page for my web application.
http://code.tutsplus.com/tutorials/intro-to-flask-signing-in-and-out–net-29982
I am having issue with the database.
I am getting an
ImportError: No module named MySQLdb
when I execute
http://127.0.0.1:5000/testdb
I have tried all possible ways to install python mysql, the one mentioned in the tutorial, easy_install, sudo apt-get install.
I have installed mysql in my virtual env. My directory structure is just the same as whats explained in the tutorial. The module is sucessfully installed in my system and still I am getting this error.
Please help. What could be causing this.
回答 0
如果您在编译二进制扩展名时遇到问题,或者在无法扩展的平台上,则可以尝试使用纯python PyMySQL
绑定。
只需pip install pymysql
切换您的SQLAlchemy URI即可,如下所示:
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://.....'
您还可以尝试其他一些驱动程序。
If you’re having issues compiling the binary extension, or on a platform where you cant, you can try using the pure python PyMySQL
bindings.
Simply pip install pymysql
and switch your SQLAlchemy URI to start like this:
SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://.....'
There are some other drivers you could also try.
回答 1
或尝试以下方法:
apt-get install python-mysqldb
Or try this:
apt-get install python-mysqldb
回答 2
你可以尝试
pip install mysqlclient
may you try
pip install mysqlclient
回答 3
我的问题是:
return __import__('MySQLdb')
ImportError: No module named MySQLdb
和我的决议:
pip install MySQL-python
yum install mysql-devel.x86_64
在开始的时候,我刚刚安装了MySQL-python,但是问题仍然存在。因此,我认为如果发生此问题,您还应该考虑mysql-devel。希望这可以帮助。
My issue is :
return __import__('MySQLdb')
ImportError: No module named MySQLdb
and my resolution :
pip install MySQL-python
yum install mysql-devel.x86_64
at the very beginning, i just installed MySQL-python, but the issue still existed. So i think if this issue happened, you should also take mysql-devel into consideration.
Hope this helps.
回答 4
在研究SQLAlchemy时遇到了这个问题。SQLAlchemy用于MySQL的默认方言是mysql+mysqldb
。
engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')
No module named MySQLdb
执行上述命令时出现“ ”错误。要修复它,我安装了mysql-python
模块,此问题已解决。
sudo pip install mysql-python
I got this issue when I was working on SQLAlchemy. The default dialect used by SQLAlchemy for MySQL is mysql+mysqldb
.
engine = create_engine('mysql+mysqldb://scott:tiger@localhost/foo')
I got the “No module named MySQLdb
” error when the above command was executed. To fix it I installed the mysql-python
module and the issue was fixed.
sudo pip install mysql-python
回答 5
根据我的经验,它也取决于Python版本。
如果您使用的是Python 3,则@DazWorrall答案对我来说效果很好。
但是,如果您使用的是Python 2,则应该
sudo pip install mysql-python
这将安装“ MySQLdb”模块,而无需更改SQLAlchemy URI。
It depends on Python Version as well in my experience.
If you are using Python 3, @DazWorrall answer worked fine for me.
However, if you are using Python 2, you should
sudo pip install mysql-python
which would install ‘MySQLdb’ module without having to change the SQLAlchemy URI.
回答 6
所以我花了大约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 install,但是不幸的是,这种配置是我唯一可以采用的舒适方式。
So I spent about 5 hours trying to figure out how to deal with this issue when trying to run
./manage.py makemigrations
With Ubuntu Server LTS 16.1, a full LAMP stack, Apache2 MySql 5.7 PHP 7 Python 3 and Django 1.10.2 I really struggled to find a good answer to this. In fact, I am still not satisfied, but the ONLY solution that worked for me is this…
sudo apt-get install build-essential python-dev libapache2-mod-wsgi-py3 libmysqlclient-dev
followed by (from inside the virtual environment)
pip install mysqlclient
I really dislike having to use dev installs when I am trying to set up a new web server, but unfortunately this configuration was the only mostly comfortable path I could take.
回答 7
尽管@Edward van Kuik的答案是正确的,但并未考虑virtualenv v1.7及更高版本的问题。
特别是在Ubuntu 上python-mysqldb
通过via apt
进行安装时,将其放在下/usr/lib/pythonX.Y/dist-packages
,但virtualenv的默认情况下不包含此路径。sys.path
。
因此,要解决此问题,您应该通过运行类似以下内容的系统包来创建您的virtualenv:
virtualenv --system-site-packages .venv
While @Edward van Kuik‘s answer is correct, it doesn’t take into account an issue with virtualenv v1.7 and above.
In particular installing python-mysqldb
via apt
on Ubuntu put it under /usr/lib/pythonX.Y/dist-packages
, but this path isn’t included by default in the virtualenv’s sys.path
.
So to resolve this, you should create your virtualenv with system packages by running something like:
virtualenv --system-site-packages .venv
回答 8
有太多与权限有关的错误,什么也没有。您可能想试试这个:
xcode-select --install
Got so many errors related to permissions and what not. You may wanna try this :
xcode-select --install
回答 9
yum install MySQL-python.x86_64
为我工作。
yum install MySQL-python.x86_64
worked for me.
回答 10
在ubuntu 20中,您可以尝试以下操作:
sudo apt-get install libmysqlclient-dev
sudo apt-get install gcc
pip install mysqlclient
In ubuntu 20 , you can try this :
sudo apt-get install libmysqlclient-dev
sudo apt-get install gcc
pip install mysqlclient