ApacheでWSGIアプリケーションを実行するとインポートエラー:未定義シンボル:PyUnicodeUCS2_DecodeUTF8

ApacheでWSGIアプリケーションを実行するとインポートエラー:未定義シンボル:PyUnicodeUCS2_DecodeUTF8

SLES 11P1のApacheでMoinMoinを実行しようとしています。誰かがWebサイトにアクセスしようとすると、Apacheログに次のエラーが表示されます。

mod_wsgi (pid=20772): Target WSGI script '/srv/www/wiki/moin.wsgi' cannot be loaded as Python module.
mod_wsgi (pid=20772): Exception occurred processing WSGI script '/srv/www/wiki/moin.
wsgi'.
Traceback (most recent call last):
  File "/srv/www/wiki/moin.wsgi", line 44, in <module>
    from MoinMoin.web.serving import make_application
  File "/usr/local/lib64/python2.6/site-packages/MoinMoin/web/serving.py", line 14, in <module>
    from MoinMoin import version, log
  File "/usr/local/lib64/python2.6/site-packages/MoinMoin/log.py", line 92, in <module>
    import logging.config
  File "/usr/lib/python2.6/logging/config.py", line 30, in <module>
    import sys, logging, logging.handlers, string, socket, struct, os, traceback, types
  File "/usr/lib/python2.6/logging/handlers.py", line 27, in <module>
    import logging, socket, types, os, string, cPickle, struct, time, re
ImportError: /usr/lib64/python2.6/lib-dynload/cPickle.so: undefined symbol: PyUnicodeUCS2_DecodeUTF8

しかし、Pythonインタプリタで失敗した文を手動で実行しても問題はありません。

$ python
'import site' failed; use -v for traceback
Python 2.6.6 (r266:84292, Feb 17 2011, 08:36:48) 
[GCC 4.3.4 [gcc-4_3-branch revision 152973]] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import logging, socket, types, os, string, cPickle, struct, time, re
>>>

Apacheで実行するとこのエラーが発生しますが、コマンドラインでPythonを実行すると発生しないのはなぜですか?

編集:他の共有ライブラリにアクセスしているようです。 Apacheが実行されており、/usr/lib64/python2.6/lib-dynload/cPickle.soコマンドラインから呼び出されたPythonインタプリタも実行中です。/usr/lib/python2.6/lib-dynload/cPickle.so

$ python -v 
...
>>> import cPickle
dlopen("/usr/lib/python2.6/lib-dynload/cPickle.so", 2);
dlopen("/usr/lib/python2.6/lib-dynload/cStringIO.so", 2);

ベストアンサー1

ご存知のように、Apache(64ビット)は、コマンドラインからさまざまなPythonバイナリを実行すると、さまざまなライブラリをロードします。 Python2.6 64ビットインストール用のバイナリ/ライブラリを修正します。これは消えなければなりません。

おすすめ記事