2017-10-17 7 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

ビルドに不可欠なlibre2-devフォームの適格性をインストールした後、pip経由でre2をインストールしました! – user1829243

答えて

4

PyPIにリリースされたバージョンは、Python 3と互換性がありません。 basestringはPython 2にのみ存在します。これは唯一の問題ではありません。Python 3の全文テキストのUnicodeビューに適合するようにテキスト中心のプロジェクトを修正するのは簡単ではありません。

特定のプロジェクトが維持されていないようです。他の人はhave already reported the problemであり、人々は別のフォークを指している:https://github.com/andreasvc/pyre2

あなたはGitHubのから直接そのプロジェクトをインストールすることができます:あなたがコンパイルするそのプロジェクトの最初のCythonをインストールする必要があります

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

注意。他のフォークと異なり、生成されたC++ファイル(re2.pyxファイルから)はチェックインされません。ちょうどpip install Cythonを実行してください。

また、代替案を見ることもできます。おそらくregex moduleもあなたの要件に合っています。 regexは、大幅に改善されたUnicodeサポートのような追加機能を備えたreのドロップイン代替品です。

関連する問題