在Python3中使用re2

在Python3中使用re2,python,python-3.x,re2,Python,Python 3.x,Re2,我需要在python3中使用re2。安装工作正常,但导入时收到以下错误: >>> import re2 as re Traceback (most recent call last): File "<stdin>", line 1, in <module> File "re2.pyx", line 1, in init re2 (src/re2.cpp:13681) NameError: basestring >>将re2作为re导入 回溯(最

我需要在python3中使用re2。安装工作正常,但导入时收到以下错误:

>>> import re2 as re
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "re2.pyx", line 1, in init re2 (src/re2.cpp:13681)
NameError: basestring
>>将re2作为re导入
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“re2.pyx”,第1行,在init re2中(src/re2.cpp:13681)
NameError:基本字符串

有人知道问题出在哪里吗?

发布到PyPI的版本与Python 3不兼容<代码>基本字符串仅存在于Python 2中。这并不是唯一的问题,修复一个以文本为中心的项目以适应Python3 all text is Unicode视图并非易事

具体项目似乎未维护;而其他人则指向另一个分叉:

您可以直接从GitHub安装该项目:

pip install git+https://github.com/andreasvc/pyre2.git
请注意,您需要先安装Cython才能编译该项目;与其他分支不同,生成的C++文件(从<代码> Re2.Pyx文件)没有签入。只需运行
pip安装Cython


你也可以考虑其他选择;也许这也符合你的要求
regex
re
的替代品,具有其他功能,如大大改进的Unicode支持。

我刚刚安装了build essential libre2 dev form Attitude,然后通过pip安装了re2!regex模块的速度慢了10倍,所以没有人想使用它。re2应该是Python的一部分。仍然不适用于Python3.7.2,我希望它适用于Python3.8及其后版本!有人尝试过导入cffi_re2作为re,它在速度方面与pyre2相比如何?Python 3.7导入错误问题:/dev/venv/lib/python3.7/site-packages/re2.cpython-37m-x86_64-linux-gnu。so:未定义符号:_ZNK3re23RE25MatchERKNS_11StringPiecemmns0_6; anchoreps1_我编译re2不走运(venv)[ec2]-user@ip-172-29-0-54现场包]$ldd re2.cpython-37m-x86_64-linux-gnu.so linux vdso.so.1=>(0x00007ffc92f5c000)libre2.so.0=>/usr/lib64/libre2.so.0(0x00007f8de0668000)libstdc++.so.6=>/usr/lib64/libstdc++.so.6(0x00007f8de02e2000)libm.so=>/libm.so.6=>/lib64/libm.so.6(0x00007f8ddgcc)libstdcc=>libpthread.so.0=>/lib64/libpthread.so.0(0x00007f8ddfbad000)libc.so.6=>/lib64/libc.so.6(0x00007f8ddf7e0000)/lib64/ld-linux-x86-64.so.2(0x000055a3bf47f000)对不起,我这里没有答案。听起来像是库版本不匹配。