Python 之 sqlalchemy代码生成器

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)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值