python – AttributeError:模块’attr’没有属性’s’

>>> import attr
>>> @attr.s
... class SmartClass(object):
...     a=attr.ib()
...     b=attr.ib()
... 
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: module 'attr' has no attribute 's'
>>> 

我不明白为什么它不起作用.我已经使用pip安装了这个模块并且安装正确,但是它仍然在实现部分中显示错误.

最佳答案
PyPI上的attr库没有看起来像这样的API.其中没有attr.ib或attr.s,因此没有理由你期望它能够工作.

您可能正在使用attrs库的文档,这有点令人困惑地安装名为attrs和attr的软件包,并且实际上有一个attr.s和attr.ib,完全按照您尝试的方式使用.

但是如果你想使用attrs库,你必须安装它 – 你可能也想卸载attr:

$pip uninstall attr
$pip install attrs

(如果你真的想要两者,那有点令人困惑;推荐的方法似乎是使用来自attrs的attr,以及来自attr的dry_attr.)

当然,最好的解决方案是在未来几个月内使用时间机器,这样你就可以使用Python 3.7及其PEP 557数据类,这个功能主要基于attrs,但更简单并内置于stdlib.

转载注明原文:python – AttributeError:模块’attr’没有属性’s’ - 代码日志