2017-10-17 127 views
1

我需要在python3中使用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 

有誰知道問題是什麼?

+0

我剛剛安裝了build-essential libre2-dev的形式aptitude,然後通過pip的re2! – user1829243

回答

4

發佈到PyPI的版本與Python 3不兼容; basestring只在Python 2中存在。這不會是唯一的問題,修復一個以文本爲中心的項目以適應Python 3全文本是Unicode視圖並不是微不足道的。

看來具體的項目是無人維護的;其他人have already reported the problem,人們指出了不同的分支:https://github.com/andreasvc/pyre2

您可以從GitHub直接安裝項目:

pip install git+https://github.com/andreasvc/pyre2.git 

請注意,你需要先安裝用Cython爲該項目編制;與其他分支不同,生成的C++文件(來自re2.pyx文件)沒有簽入。只需運行pip install Cython

你也可以看看替代品;也許regex module也符合你的要求。 regexre的附加功能的替代替代品,如大大改進的Unicode支持。