你好,我正在使用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 的库。但这并没有改变任何事情。
Pydantic 2.0 于几个小时前发布,其中引入了
inflect
的重大更改。
理想情况下,inflect 在他们的项目中应该有一个
pydantic
版本的上限。在这里跟踪变形问题。
检查您的计算机上安装的
pydantic
版本。一定是2.0
。您需要 uninstall
以及 install
最高的 1.xx.x
。
我知道一旦这个问题解决,这个答案就会过时,但遇到此类重大更改时,只需执行以下两件事:
截至目前(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