我需要在 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
有谁知道问题是什么?
我需要在 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
有谁知道问题是什么?
发布到 PyPI 的版本不兼容 Python 3;basestring
仅存在于 Python 2 中。这不是唯一的问题,修复以文本为中心的项目以适应 Python 3 all-text-is-Unicode 视图并非易事。
似乎特定项目未维护;其他人已经报告了这个问题,人们指出了另一个分支:https ://github.com/andreasvc/pyre2 。
您可以直接从 GitHub 安装该项目:
pip install git+https://github.com/andreasvc/pyre2.git
请注意,您需要先安装 Cython 才能编译该项目;与其他 fork 不同,生成的 C++ 文件(来自re2.pyx
文件)没有签入。只需运行pip install Cython
.
你也可以看看替代品;也许该regex
模块也符合您的要求。regex
是re
附加功能的直接替代品,例如大大改进的 Unicode 支持。