ModuleNotFoundError:没有名为“ MySQLdb”的模块

Bel*_*lle 2 python mysql-python flask

在完成我的一个Flask项目之后,我像其他人一样将其上传到了github。在2-3个月的时间后,我将整个githube存储库下载到另一台计算机上以运行它。但是,该应用程序无法正常运行,因为找不到提供以下消息的软件包

ModuleNotFoundError:没有名为“ Flask”的模块

因此,我最终下载了从Flask,SQLalchemy等所有软件包。但我被困在MySQLdb

(MYAPPENV) C:\Users\hp\myapp>python run.py
Traceback (most recent call last):
  File "run.py", line 1, in <module>
    from app import app
  File "C:\Users\hp\myapp\app\__init__.py", line 4, in <module>
    from instance.config import engine
  File "C:\Users\hp\myapp\instance\config.py", line 52, in <module>
    engine = create_engine("mysql://root:root@localhost/MYAPPDB")
  File "C:\Users\hp\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\engine\__init__.py", line 425, in create_engine
return strategy.create(*args, **kwargs)
  File "C:\Users\hp\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\engine\strategies.py", line 81, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
  File "C:\Users\hp\AppData\Local\Programs\Python\Python37-32\lib\site-packages\sqlalchemy\dialects\mysql\mysqldb.py", line 102, in dbapi
    return __import__('MySQLdb')
ModuleNotFoundError: No module named 'MySQLdb'
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙解决这个问题吗?我在Windows机器上使用python37。我什至尝试下载软件包,例如mysqlclient,.. etc,但没有成功。

Gof*_*tty 12

您可以安装mysqlclient使用pip

如果使用Python3,试试这个:

pip3 install mysqlclient

或在Python2 中

pip install mysqlclient


Lea*_*ess 10

要在您的机器上安装MySQLdb、提供pippip3安装:

pip install mysqlclient
Run Code Online (Sandbox Code Playgroud)


Esp*_*azi 7

我已经读过python3不支持mysqldb

看起来,当您尝试连接数据库时,默认情况下使用mysql db连接数据库!

您需要通过编辑DATABASE_URI配置进行更改

但是在您需要安装连接器扩展之前:

使用此命令:

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

根据此文档, 您可以编辑DATABSE_URI并更改默认连接器,如下所示:

DATABSE_URI='mysql+mysqlconnector://{user}:{password}@{server}/{database}'.format(user='your_user', password='password', server='localhost', database='dname')
Run Code Online (Sandbox Code Playgroud)

我希望这个能帮上忙...

  • 很好的答案,常量名称(DATABASE_URI)上有一个小拼写错误 (2认同)

小智 7

import pymysql
pymysql.install_as_MySQLdb()
Run Code Online (Sandbox Code Playgroud)


luc*_*ela 6

各位网友大家好,

由于同样的问题,我到达此页面。
但我使用的是 Ubuntu 18.04 和 Python 3.6

Python 片段 - app.py

from flask import Flask, render_template
from flask_mysqldb import MySQL

app = Flask(__name__)

app.config['MYSQL_HOST'] = 'YourHost' 
app.config['MYSQL_USER'] = 'YourUserName'
app.config['MYSQL_PASSWORD'] = 'UserPassword'
app.config['MYSQL_DB'] = 'TheDbName'
mysql = MySQL(app)

app.secret_key = 'YourUltimateSuperSecretKey'

@app.route('/')
@app.route('/index')
def index():
    cur = mysql.connection.cursor()
    cur.execute('SELECT * FROM users')
    data = cur.fetchall()
    cur.close()
    return render_template('index.html', test = data)

if __name__ == "__main__":
    app.run(debug=True)
Run Code Online (Sandbox Code Playgroud)

HTML - 索引.html

<div>
    {% for x in test %}
        {{ x }}
    {% endfor %}
</div>
Run Code Online (Sandbox Code Playgroud)

这就是我解决问题的方法:
首先我安装了丢失的软件包:

sudo apt install python3-mysqldb

之后,我在环境中使用 pip 安装了这些库:

pip install Flask-MySQLdb mysql-connector-python

并且它有效:)