导入错误:在 Python 中使用 inflect 库时,无法从“pydantic.typing”导入名称“Annotated”

问题描述 投票:0回答:2

你好,我正在使用Python 3.8

我正在尝试创建一个函数来排序和打印以下形式的列表,

{第一个元素}、{第二个元素} 和 {最后一个元素}

我在 Python 中使用了 inflect 库来执行此操作,因为预计它会在我的作业中使用。

import inflect
p = inflect.engine()

def sort():
    fruits = ["apple", "banana", "carrot"]
    mylist = p.join(fruits)
    print(mylist)

sort()

但是当我执行此操作时,出现以下错误:

Traceback (most recent call last):
  File "main.py", line 1, in <module>
    import inflect
  File "/home/username/.local/lib/python3.8/site-packages/inflect/__init__.py", line 77, in <module>
    from pydantic.typing import Annotated
ImportError: cannot import name 'Annotated' from 'pydantic.typing' (/home/username/.local/lib/python3.8/site-packages/pydantic/typing.py)

我尝试重新安装名为 Pydantic 的库。但这并没有改变任何事情。

python python-3.x module importerror
2个回答
3
投票

Pydantic 2.0 于几个小时前发布,其中引入了

inflect
的重大更改。

理想情况下,inflect 在他们的项目中应该有一个

pydantic
版本的上限。在这里跟踪变形问题。


检查您的计算机上安装的

pydantic
版本。一定是
2.0
。您需要
uninstall
以及
install
最高的
1.xx.x


我知道一旦这个问题解决,这个答案就会过时,但遇到此类重大更改时,只需执行以下两件事:

  1. 检查您机器中安装的版本。
  2. 检查项目的 GitHub 页面上的问题。

0
投票

截至目前(2024 年 6 月,pydantic>=2.7)Alias Choice 工作正常。

其他 1.x.x 仍然出现问题。版本(除了问题中报告的内容之外)。以我为例:

%pip show pydantic 
# 1.10.11
from pydantic import AliasChoices # error
%pip install --upgrade pydantic
# restart Python interpreter
%pip show pydantic 
# 2.7.4
from pydantic import AliasChoices # OK
© www.soinside.com 2019 - 2024. All rights reserved.