AttributeError:module' attr'没有任何属性'

时间:2018-03-12 05:38:06

标签: python

>>> 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安装了这个模块并且安装正确,但它仍然在实现部分显示错误。

2 个答案:

答案 0 :(得分:22)

PyPI上的attr库没有看起来像这样的API。其中没有attr.ibattr.s,因此没有理由让您认为它可以正常工作。

您可能正在使用attrs库的文档,这有点令人困惑地安装了名为attrsattr的软件包,实际上确实有attr.sattr.ib一样,完全按照你的尝试方式使用。

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

$ pip uninstall attr
$ pip install attrs

(如果你真的想要两者,那就有点令人困惑;推荐的方法似乎是使用attr中的attrs和来自dry_attr的{​​{1}}。)< / p>

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

答案 1 :(得分:-2)

$ python3 -c 'import attr; print(attr.__file__)'
/path/to/python3.X/site-packages/attr.py

删除此文件对我有用。所以

rm $(python3 -c 'import attr; print(attr.__file__)')

解决问题。