2

pywikibot-coreMediawiki のインストール用に (バージョン 2.0b3) をインストールしました。Unicode テキストを含むコマンドを実行しようとすると、エラーが発生しました。

次のコマンドを実行します。

python pwb.py replace.py -regex -start:! "\[মুয়ায্যম হুসায়ন খান\]" "[মুয়ায্‌যম হুসায়ন খান]"  -summary:"fix: মুয়ায্যম > মুয়ায্‌যম"

ここに私が得たエラーがあります:

Traceback (most recent call last):
  File "pwb.py", line 161, in <module>
    import pywikibot  # noqa
  File "/var/www/html/banglapedia_bn/core/pywikibot/__init__.py", line 32, in <module>
    from pywikibot import config2 as config
  File "/var/www/html/banglapedia_bn/core/pywikibot/config2.py", line 285, in <module>
    if arg.startswith("-verbose") or arg == "-v":
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe0 in position 2: ordinal not in range(128)
4

1 に答える 1

2

python3の代わりに使用しpythonます。


config2.pyモジュールが を使用from __future__ import unicode_literalsし、モジュール内のすべての文字列を unicode オブジェクトにするため、このエラーが表示されます。ただし、sys.argsバイト文字列であり、インポートの影響を受けません__future__

したがって、argはバイト文字列ですが、"-verbose""-v"は 2 つの Unicode 文字列であるため、arg暗黙的に Unicode に昇格されますが、暗黙的な変換は ASCII でのみ機能するため、これは失敗します。

代わりに、Python 3 では、すべての文字列がデフォルトで Unicode であり、sys.args.

于 2015-04-17T17:55:34.897 に答える