1.首先需要安装 sqlacodegen
pip install sqlacodegen
2.打开cmd命令行直接运行
sqlacodegen mysql+pymysql://root:root@127.0.0.1:3306/test > models.py
报错及解决方案:
1.UnicodeEncodeError: 'gbk' codec can't encode character '\u02b1' in position 1486410: illegal multibyte sequence
Traceback (most recent call last):
File "d:\environment\python\python37\lib\runpy.py", line 193, in _run_module_as_main
"__main__", mod_spec)
File "d:\environment\python\python37\lib\runpy.py", line 85, in _run_code
exec(code, run_globals)
File "D:\Environment\Python\Python37\Scripts\sqlacodegen.exe\__main__.py", line 7, in <module>
File "d:\environment\python\python37\lib\site-packages\sqlacodegen\main.py", line 53, in main
generator.render(outfile)
File "d:\environment\python\python37\lib\site-packages\sqlacodegen\codegen.py", line 694, in render
print(output.encode('utf-8').decode('utf-8'), file=outfile)
UnicodeEncodeError: 'gbk' codec can't encode character '\u02b1' in position 1486410: illegal multibyte sequence
解决方案如下:
1)找到Python安装目录:D:\Environment\Python\Python37\Lib\site-packages\sqlacodegen
2)右键选择 codegen.py > 打开方式 > 记事本
- 在文件中输入import io

- 找到 def render(self, outfile=sys.stdout) 编辑方法体,修改print(output, file=outfile)为如下代码:
outfile = io.TextIOWrapper(outfile.buffer, encoding='utf8')
print(output.encode('utf-8').decode('utf-8'), file=outfile)


516

被折叠的 条评论
为什么被折叠?



