ターミナルから Python スクリプトを実行しようとしましたが、次のエラー メッセージが表示されます。
ImportError: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
print sys.version を実行すると、次の結果が得られます:
>>> import sys
>>> print sys.version
2.7.3 (default, Feb 26 2013, 16:27:39)
[GCC 4.4.6 20120305 (Red Hat 4.4.6-4)]
そしてldd /usr/local/bin/pythonを実行すると
>> ldd /usr/local/bin/python
linux-vdso.so.1 => (0x00007fff219ff000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003300c00000)
libdl.so.2 => /lib64/libdl.so.2 (0x0000003300800000)
libutil.so.1 => /lib64/libutil.so.1 (0x0000003310e00000)
libm.so.6 => /lib64/libm.so.6 (0x0000003300000000)
libc.so.6 => /lib64/libc.so.6 (0x0000003300400000)
/lib64/ld-linux-x86-64.so.2 (0x00000032ffc00000)
どのPythonを持っているのか分かりません。なぜこのPythonスクリプトをターミナルから実行すると失敗するのでしょうか?実行しようとしました
export LD_LIBRARY_PATH=/usr/local/lib/python2.7/
運が悪かった…
ところで、私は Eclipse で Python プラグインを使用してこのスクリプトをデバッグすることができました。デバッグ構成を確認すると、PYTHONPATH が次のように設定されていることがわかります。
/..../eclipse/plugins/org.python.pydev_3.1.0.201312121632/pysrc/pydev_sitecustomize:/..../workspace/style_checker/src:/usr/local/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg:/usr/local/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg:/usr/local/lib/python2.7:/usr/local/lib/python2.7/plat-linux2:/usr/local/lib/python2.7/lib-tk:/usr/local/lib/python2.7/lib-dynload:/usr/local/lib/python2.7/site-packages
Eclipse は、この python2.7 ライブラリを何とか見つけることができるのですが、Eclipse を使用せずにコマンド ラインからこれを行うにはどうすればよいですか? 何が間違っているのでしょうか? CentOS6 を使用しています。
ベストアンサー1
ファイルを検索してくださいlibpython2.7.so.1.0
:
locate libpython2.7.so.1.0
私の場合、出力は次のようになります:
/opt/rh/python27/root/usr/lib64/libpython2.7.so.1.0
次に、行を/opt/rh/python27/root/usr/lib64
ファイルに貼り付けます/etc/ld.so.conf
そして実行しますldconfig
。問題は解決しました。頑張ってください!