Sqlacodegen 显示未找到 Argspec

Jun*_* SK 8 postgresql sqlalchemy python-3.x sqlacodegen fastapi

任何人都可以帮我吗?我试图将 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)
Run Code Online (Sandbox Code Playgroud)

我正在使用 python 3.11、postgresql、sqlalchemy 2.0.15 和 sqlacodegen 2.3.0

我想从我的数据库中为我的 fastapi 自动生成数据库模型。我也对任何类型的 sqlacodegen 替代品持开放态度

yus*_*sta 2

我也遇到了这个问题。出现这个问题是因为 ArgSpec 在 Python 3.11 中被删除了。

/site-packages/sqlacodegen/codegen.py解决方案是在文本编辑器中打开该文件。然后,删除第 9 行中包含的行。from inspect import ArgSpec此外,删除第 486 行和 488 行,将其替换为return False,然后再次运行命令。它应该可以正常工作,没有任何问题。