我试图使用sqlacodegen与postgresql自动生成数据库模型从我的数据库,但它不断显示我这个导入错误
>sqlacodegen postgresql://postgres:j1234@localhost:4040/db1
Traceback (most recent call last):
File "<frozen runpy>", line 198, in _run_module_as_main
File "<frozen runpy>", line 88, in _run_code
File "C:\Users\user\AppData\Local\Programs\Python\Python311\Scripts\sqlacodegen.exe\__main__.py", line 4, in <module>
File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\sqlacodegen\main.py", line 11, in <module>
from sqlacodegen.codegen import CodeGenerator
File "C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\site-packages\sqlacodegen\codegen.py", line 9, in <module>
from inspect import ArgSpec
ImportError: cannot import name 'ArgSpec' from 'inspect' (C:\Users\user\AppData\Local\Programs\Python\Python311\Lib\inspect.py)
字符串
我正在使用python 3.11,postgresql,sqlalchemy 2.0.15和sqlacodegen 2.3.0
我想从我的数据库中为我的fastapi自动生成数据库模型。我也愿意接受任何类型的sqlacodegen替代方案
3条答案
按热度按时间3zwjbxry1#
我也遇到了这个问题,因为Python 3.11中删除了ArgSpec。
解决方案是在文本编辑器中打开
/site-packages/sqlacodegen/codegen.py
文件。然后,删除第9行包含from inspect import ArgSpec
的行。此外,删除第486和488行,将其替换为return False
,然后再次运行命令。它应该可以正常工作。mm5n2pyu2#
为了补充其他人提到的问题,SQLAcodegen-v2没有这个问题,并且可以在Python 3.11(使用SQLAlchemy 2.0)上运行良好。
p4rjhz4m3#
目前,sqlacodegen与3.11不兼容。因此,作为一种变通方法(就像@yusufusta建议的那样)
字符串