版权声明:本文为博主原创文章,转载文章须附上文章来源与作者。 https://blog.csdn.net/ChangerJJLee/article/details/86685709
使用手册
- pip install sqlacodegen
- sqlacodegen mysql://<数据库账号>:<数据库密码>@127.0.0.1:3306/<数据库名称> > models.py即可在当前目录生成models.py文件
报错Nomodulenamed’MySQLdb’
[root@59718da48394 Model]# /usr/local/python3/bin/sqlacodegen mysql://test:[email protected]:3306/testdb > EviewsModels.py
Traceback (most recent call last):
File "/usr/local/python3/bin/sqlacodegen", line 11, in <module>
sys.exit(main())
File "/usr/local/python3/lib/python3.7/site-packages/sqlacodegen/main.py", line 43, in main
engine = create_engine(args.url)
File "/usr/local/python3/lib/python3.7/site-packages/sqlalchemy/engine/__init__.py", line 425, in create_engine
return strategy.create(*args, **kwargs)
File "/usr/local/python3/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py", line 81, in create
dbapi = dialect_cls.dbapi(**dbapi_args)
File "/usr/local/python3/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 102, in dbapi
return __import__('MySQLdb')
ModuleNotFoundError: No module named 'MySQLdb'
解决方案
- pip3 install pymysql
- vi /usr/local/python3/lib/python3.7/site-packages/sqlalchemy/dialects/mysql/mysqldb.py
- 找到dbapi(cls) 修改成如下
@classmethod
def dbapi(cls):
import pymysql
pymysql.install_as_MySQLdb()
return __import__('MySQLdb')