0

lxml でデータを処理しようとしています。私の開発サーバーでは問題なく動作しますが、本番環境では次のコード:

parser = etree.XMLParser(encoding='cp1251')

スロー:

  File "parser.pxi", line 1288, in lxml.etree.XMLParser.__init__ (third_party/apphosting/python/lxml/src/lxml/lxml.etree.c:77726)
  File "parser.pxi", line 738, in lxml.etree._BaseParser.__init__ (third_party/apphosting/python/lxml/src/lxml/lxml.etree.c:73404)
LookupError: unknown encoding: 'cp1251'

lxml 2.3 を使用しています。同じバージョンが GAE でサポートされているようです。では、なぜこのエラーが発生するのでしょうか?

編集

XMLParsercp1252、ISO-8859-5、ISO-8859-2 などの異なるエンコーディングを に指定したところ、GAE では常に同じエラーがスローされましたが、ローカル マシンでは動作しました。これらは一般的なエンコーディングであり、GAE の lxml はそれらをサポートする必要があります。これは、GAE の lxml ビルドに何か問題があると思います。

問題を作成しました: http://code.google.com/p/googleappengine/issues/detail?id=7315

編集2

完全なトレースバック:

unknown encoding: 'cp1251'
Traceback (most recent call last):
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1511, in __call__
    rv = self.handle_exception(request, response, e)
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1505, in __call__
    rv = self.router.dispatch(request, response)
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1253, in default_dispatcher
    return route.handler_adapter(request, response)
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 1077, in __call__
    return handler.dispatch()
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 547, in dispatch
    return self.handle_exception(e, self.app.debug)
  File "/base/python27_runtime/python27_lib/versions/third_party/webapp2-2.3/webapp2.py", line 545, in dispatch
    return method(*args, **kwargs)
  File "/base/data/home/apps/s~my_cool_app_id/1.358126884781269352/main.py", line 29, in get
    parser = etree.XMLParser(encoding='cp1251')
  File "parser.pxi", line 1288, in lxml.etree.XMLParser.__init__ (third_party/apphosting/python/lxml/src/lxml/lxml.etree.c:77726)
  File "parser.pxi", line 738, in lxml.etree._BaseParser.__init__ (third_party/apphosting/python/lxml/src/lxml/lxml.etree.c:73404)
LookupError: unknown encoding: 'cp1251'
4

1 に答える 1

1

encoding="cp1252" を指定すると上記のエラーが発生する、OS X でのこの動作に関する未解決のバグがあるようです。コメントでは、影響を受ける他のシステムも指定されています: https://bugs.launchpad.net/lxml/+bug/707396

他のエンコーディング タイプを指定してみましたか? (それが cp1252 だけの問題かどうかを確認するため)

于 2012-04-09T21:53:44.690 に答える