【DM版本】:DM8
【操作系统】:Windows11
【CPU】: i5-12490F
【问题描述】*:Python版本为 3.10.17
SQLAlchemy2.0.40
sqlalchemy_dm2.0.3
dmPython==2.5.8
逻辑代码为官方示例: https://eco.dameng.com/document/dm/zh-cn/app-dev/python-SQLAlchemy.html
使用SQLAchemy操作数据库插入数据时报错
TypeError: int() argument must be a string, a bytes-like object or a real number, not 'tuple
报错原因:插入操作返回的id是元组,竟然没取值
解决:修改源码:
cd /usr/local/lib/python3.7/site-packages/
解压
unzip sqlalchemy_dm-2.0.3-py3.7.egg -d sqlalchemy_dm_fixed
修改 types.py
vim sqlalchemy_dm_fixed/sqlalchemy_dm/types.py
找到 to_int 函数并添加 tuple 判断
备份旧 egg 文件
mv sqlalchemy_dm-2.0.3-py3.7.egg sqlalchemy_dm-2.0.3-py3.7.egg_bak
重新打包为 egg
cd sqlalchemy_dm_fixed
zip -r ../sqlalchemy_dm-2.0.3-py3.7.egg .
回到 site-packages
cd ..
清除 .pyc 缓存
find sqlalchemy_dm_fixed -name "*.pyc" -delete
重命名目录确保加载
mv sqlalchemy_dm_fixed sqlalchemy_dm-2.0.3-py3.7.egg-extracted
我也遇到了这个问题,最后怎么处理的?求告知