Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/359.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python ModuleNotFoundError:没有名为';MySQLdb';亚马逊炼金术_Python_Amazon Web Services_Sqlalchemy_Mysql Python - Fatal编程技术网

Python ModuleNotFoundError:没有名为';MySQLdb';亚马逊炼金术

Python ModuleNotFoundError:没有名为';MySQLdb';亚马逊炼金术,python,amazon-web-services,sqlalchemy,mysql-python,Python,Amazon Web Services,Sqlalchemy,Mysql Python,我在连接Amazon AWS MySQL和SQLAlchemy时遇到问题。根据指示,我已连接 app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://<user>:<password>@<host>/<dbname> app.config['SQLALCHEMY\u DATABASE\u URI']='mysql://:@/ 但有一个错误: Traceback (most recent call las

我在连接Amazon AWS MySQL和SQLAlchemy时遇到问题。根据指示,我已连接

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://<user>:<password>@<host>/<dbname>
app.config['SQLALCHEMY\u DATABASE\u URI']='mysql://:@/
但有一个错误:

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'
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“/home/ec2 user/venv/lib/python3.7/site packages/flask\u sqlalchemy/\uuuuuuuu init\uuuuuuuuuuu.py”,第514行,在__
返回类型.query\u类(映射器,session=self.sa.session())
文件“/home/ec2 user/venv/lib/python3.7/site packages/sqlalchemy/orm/scoping.py”,第74行,在调用中__
返回self.registry()
文件“/home/ec2 user/venv/lib/python3.7/site packages/sqlalchemy/util/_collections.py”,第1001行,在u调用中__
返回self.registry.setdefault(项,self.createfunc())
文件“/home/ec2 user/venv/lib/python3.7/site packages/sqlalchemy/orm/session.py”,第2950行,在调用中__
返回自功率等级(**本地功率)
文件“/home/ec2 user/venv/lib/python3.7/site-packages/flask\u-sqlalchemy/\uuuuuuu-init\uuuuuu.py”,第143行,in\uuu-init__
bind=options.pop('bind',None)或db.engine
文件“/home/ec2 user/venv/lib/python3.7/site packages/flask_sqlalchemy/_init__.py”,第877行,在引擎中
返回self.get_引擎()
get_引擎中的文件“/home/ec2 user/venv/lib/python3.7/site packages/flask\u sqlalchemy/\u_init\u_uuu.py”,第896行
返回连接器。获取引擎()
get_引擎中的文件“/home/ec2 user/venv/lib/python3.7/site packages/flask\u sqlalchemy/\u_init\u_uu.py”,第559行
self.\u engine=rv=sqlalchemy.create\u engine(信息,**选项)
文件“/home/ec2 user/venv/lib/python3.7/site packages/sqlalchemy/engine/__init__;.py”,第424行,在create_引擎中
返回策略。创建(*args,**kwargs)
文件“/home/ec2 user/venv/lib/python3.7/site packages/sqlalchemy/engine/strategies.py”,第81行,在create中
dbapi=方言\ cls.dbapi(**dbapi\参数)
dbapi中的文件“/home/ec2 user/venv/lib/python3.7/site packages/sqlalchemy/dialogs/mysql/mysqldb.py”,第102行
返回uuu导入uuu('MySQLdb'))
ModuleNotFoundError:没有名为“MySQLdb”的模块
我使用的是Python3.7版本。即使根据stackoverflow,我已经安装了pymysql,但仍然面临这个问题


感谢您的回复。

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

 mysql+pymysql://
而不是mysql://

如果您连接到mysql://,则需要安装MySQLdb库,如回溯中所示。

步骤1 如果要使用MySQLDB,需要使用以下命令之一。哪一个取决于您拥有和使用的操作系统和软件

轻松安装mysql python
(混合操作系统)

pip安装mysql-python
(混合操作系统/python2)

pip安装mysqlclient
(混合os/python 3)

apt get install python mysqldb
(Linux Ubuntu,…)

cd/usr/ports/databases/py MySQLdb&&make-install-clean
(FreeBSD)

yum安装MySQL-python
(Linux Fedora、CentOS…)

对于Windows,请参见以下答案:

第二步:

  • 创建引擎
  • engine=create\u engine('mysql+mysqldb://...,池_recycle=3600)

    使用
    create\u engine.pool\u recycle
    选项,该选项可确保连接在池中已存在固定秒数时将被丢弃并替换为新连接:

  • 创建连接对象
  • conn=engine.connect()

  • 执行SQL查询

  • conn.execute(“从表中选择*”)

    以上问题已通过以下方式解决:

    import pymysql
    
    pymysql.install_as_MySQLdb()
    

    任何地方都无需更改。

    以上问题已经解决:导入pymysql pymysql.install_as_MySQLdb()谢谢大家的建议。没有任何改变可以解决这个问题,但是有人会对发生的事情做一些解释吗?(我想问一个问题,但我还不确定问题是什么。)