エラーなしでPydoopをビルドしてインストールできたので、たとえば、次のことができます。
>>> import pydoop
>>> pydoop.__version__
'0.10.0'
pipes
ただし、またはなどのメインの Pydoop モジュールをインポートしようとすると、次のようにhdfs
なりImportError
ます。
>>> import pydoop.hdfs
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "pydoop/hdfs/__init__.py", line 79, in <module>
from fs import hdfs, default_is_local
File "pydoop/hdfs/fs.py", line 28, in <module>
hdfs_ext = pydoop.import_version_specific_module("_hdfs")
File "pydoop/__init__.py", line 111, in import_version_specific_module
return import_module(complete_mod_name(name))
File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
__import__(name)
ImportError: No module named _hdfs_2_0_0_cdh_4_3_0
さらに、使用しようとすると、次pydoop script
のようなヒントが得られます。
...
ImportError: /usr/local/lib/python2.7/dist-packages/pydoop/_pipes_2_0_0_cdh_4_3_0.so: undefined symbol: BIO_s_mem
BIO_s_mem
はlibssl
(OpenSSL) のシンボルなので、Pydoop はこの共有ライブラリを見つけることができないと思います。私はそれが利用可能であり、.so
(たとえば、ではなく.so.1
)で終わり、LD_LIBRARY_PATH
.
では、このエラーの理由は何でしょうか? どうすれば修正できますか (ビルドオプション? 環境変数?)
どんな助けでも大歓迎です。