bidi という Python パッケージを使用しようとしています。このパッケージのモジュール (algorithm.py) には、パッケージの一部であるにもかかわらず、エラーが発生する行がいくつかあります。
ここにその行があります:
# utf-8 ? we need unicode
if isinstance(unicode_or_str, unicode):
text = unicode_or_str
decoded = False
else:
text = unicode_or_str.decode(encoding)
decoded = True
エラーメッセージは次のとおりです:
Traceback (most recent call last):
File "<pyshell#25>", line 1, in <module>
bidi_text = get_display(reshaped_text)
File "C:\Python33\lib\site-packages\python_bidi-0.3.4-py3.3.egg\bidi\algorithm.py", line 602, in get_display
if isinstance(unicode_or_str, unicode):
NameError: global name 'unicode' is not defined
この部分のコードを Python3 で動作するように書き直すにはどうしたらよいでしょうか? また、Python 3 で bidi パッケージを使用したことがある方がいらっしゃいましたら、同様の問題が見つかったかどうか教えてください。ご協力に感謝いたします。
ベストアンサー1
Python 3 では、unicode
型の名前が に変更されstr
、古いstr
型は に置き換えられましたbytes
。
if isinstance(unicode_or_str, str):
text = unicode_or_str
decoded = False
else:
text = unicode_or_str.decode(encoding)
decoded = True
ぜひ読んでみてくださいPython 3 移植 HOWTO詳細はLennart RegebroのPython 3 への移植: 詳細ガイド、 フリーオンライン。
最後に、2to3
道具コードがどのように変換されるかを確認します。