[FQA] Python Bridgeインストールには成功したが,ライブラリimport時にエラーが発生する

質問

Python Bridgeのインストール自体は成功したようですが,Field Reportsの拡張モジュールをimportした際に実行時エラーが発生します。

$ sudo easy_install field.reports-1.4-py2.6-linux-x86_64.eggProcessing field.reports-1.4-py2.6-linux-x86_64.egg
creating /usr/lib/python2.6/site-packages/field.reports-1.4-py2.6-linux-x86_64.egg
Extracting field.reports-1.4-py2.6-linux-x86_64.egg to /usr/lib/python2.6/site-packages
Adding field.reports 1.4 to easy-install.pth file
Installed /usr/lib/python2.6/site-packages/field.reports-1.4-py2.6-linux-x86_64.egg
Processing dependencies for field.reports==1.4
Finished processing dependencies for field.reports==1.4
$ python
Python 2.6.6 (r266:84292, Dec  7 2011, 20:48:22)
[GCC 4.4.6 20110731 (Red Hat 4.4.6-3)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import field.reports
Traceback (most recent call last):
  File "", line 1, in 
ImportError: /usr/lib/python2.6/site-packages/field.reports-1.4-py2.6-linux-x86_64.egg/field/reports.so: undefined symbol: PyUnicodeUCS2_AsUTF8String

回答

Pythonでは,言語処理系をビルドする際に --with-unicode オプションによりUnicode文字列の内部表現を選択できるようになっています。

おそらく,Python Bridgeをビルドした際のPythonとご利用中のPythonで --with-unicode オプションが異なるため,上記のようなエラーが発生したと思われます。

 

インストールしたPython Bridgeをいったんアンインストールしてから,

Python Bridgeを再ビルド/再インストールしてください。

ビルド手順については,ユーザーズマニュアルの付録Aを参照してください。