Python Don';我不理解这个元类的语法错误

Python Don';我不理解这个元类的语法错误,python,python-2.7,ethereum,Python,Python 2.7,Ethereum,下面的代码是pyrlp包中的atomic.py,pyrlp包是pyethereum的一个库 import abc class Atomic(metaclass=abc.ABCMeta): """ABC for objects that can be RLP encoded as is.""" pass Atomic.register(bytes) Atomic.register(bytearray) 以下是来自控制台的错误信息: 从rlp.atomic导入原子 文件“/

下面的代码是pyrlp包中的atomic.py,pyrlp包是pyethereum的一个库

import abc


class Atomic(metaclass=abc.ABCMeta):
    """ABC for objects that can be RLP encoded as is."""
    pass


Atomic.register(bytes)
Atomic.register(bytearray)
以下是来自控制台的错误信息:

从rlp.atomic导入原子
文件“/Users/jerryin/Desktop/pyeth/pyrlp/rlp/atomic.py”,第4行
原子类(元类=abc.ABCMeta):
^
SyntaxError:无效语法
自从项目导入后,我就没有修改过它。谁能告诉我这有什么问题吗


另外,我在这个项目中使用的解释器是Python2.7。

Python2不支持类的
metaclass
关键字参数,以及

改用Python 3。

元类的Python 2“语法”是一个神奇的类属性:

class Atomic(object):
    __metaclass__ = abc.ABCMeta
abc包还有一个使用ABCMeta的常规类,它允许使用继承:

class Atomic(abc.ABC):
    pass

请注意,除非您想修补库,否则应该使用Python 3。该库不是为Python 2设计的。

这个问题是根据“Python 2.7”环境提出的。有时,该版本在项目中使用是有正当理由的。特别是,如果有人试图遵循一些手册,这些手册在库移动之后没有更新过,因为删除了对python 2.x版本的支持。分享如何在Python2.x版本中安装较旧版本的“pyrlp”可能很有价值。