Skip to main content
 首页 » 编程设计

python之模块未找到错误 : No module named 'MySQLdb' Amazon MySQL RDS SQLAlchemy

2024年09月07日28del

我在将 Amazon AWS MySQL 与 SQLAlchemy 连接时遇到问题。按照提示,我已经连接上了。

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://<user>:<password>@<host>/<dbname> 

但是有一个错误:

Traceback (most recent call last): 
  File "<stdin>", line 1, in <module> 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 514, in __get__ 
    return type.query_class(mapper, session=self.sa.session()) 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/sqlalchemy/orm/scoping.py", line 74, in __call__ 
    return self.registry() 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/sqlalchemy/util/_collections.py", line 1001, in __call__ 
    return self.registry.setdefault(key, self.createfunc()) 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/sqlalchemy/orm/session.py", line 2950, in __call__ 
    return self.class_(**local_kw) 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 143, in __init__ 
    bind = options.pop('bind', None) or db.engine 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 877, in engine 
    return self.get_engine() 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 896, in get_engine 
    return connector.get_engine() 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/flask_sqlalchemy/__init__.py", line 559, in get_engine 
    self._engine = rv = sqlalchemy.create_engine(info, **options) 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/sqlalchemy/engine/__init__.py", line 424, in create_engine 
    return strategy.create(*args, **kwargs) 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py", line 81, in create 
    dbapi = dialect_cls.dbapi(**dbapi_args) 
  File "/home/ec2-user/venv/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 102, in dbapi 
    return __import__('MySQLdb') 
ModuleNotFoundError: No module named 'MySQLdb' 

我使用的是Python3.7版本。根据stackoverflow,我已经安装了pymysql,但是还是遇到了问题。

感谢您的回复。

请您参考如下方法:

如果您使用 PyMySQL 客户端连接到 MySQL,您的 SQLAlchemy 连接字符串需要以

 mysql+pymysql:// 

代替 mysql://。

如果您使用 mysql:// 连接,那么您将需要安装 MySQLdb 库,如 Traceback 中所示。