簡體   English   中英

libpython2.7.so.1.0:無法打開共享對象文件:沒有這樣的文件或目錄

[英]libpython2.7.so.1.0: cannot open shared object file: No such file or directory

我試圖從終端運行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/

沒有運氣......

BTW - 我已經設法使用python插件在eclipse中調試此腳本,當我查看調試配置時,我看到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。

嘗試查找文件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 它解決了我的問題。 祝好運!

出於某種原因,這兩個對我來說非常有效:

apt-get install libpython2.7
sudo apt-get install libatlas3-base

我在這里這里找到了他們

也許您可以在https://stackoverflow.com/a/1100297/3559967上嘗試答案。 該問題的作者還指出LD_LIBRARY_PATH方法對他不起作用,但是將庫路徑添加到/etc/ld.so.conf並運行ldconfig工作。

這不是我熱衷的主題,但我的理解是針對Linux機器(尤其是編譯python二進制文件), 應該在編譯步驟中指定共享庫目錄

例如,在鏈接的示例之后,以下是我如何確保除了其他庫之外還包含libpython2.7.so.1.0

./configure --enable-shared \
        --prefix=/directory/for/Python-2.7.15 \
        LDFLAGS="-Wl,--rpath=/usr/local/lib -Wl,--rpath=/directory/for/Python-2.7.15"

注意我也是通過--prefix選項將python安裝到我選擇的固定目錄中。 這對您來說可能不是必需的,但我這樣做是為了為python安裝可能位於任何地方的一般情況提供解決方案。

通過上面的解決方案,我永遠不必導出LD_LIBRARY_PATH或亂用ldconfig

我通過使用“export LD_LIBRARY_PATH =”$ {WORK_PATH} / venv / lib“解決了這個問題。

添加到正確的答案:

有關如何執行以下操作的多個問題:然后將行/ opt / rh / python27 / root / usr / lib64粘貼到文件/etc/ld.so.conf

正確的方法是在/etc/ld.so.conf.d/中添加一個新文件,並在該文件中添加上面的行。

在64位Linux上執行32位gdb二進制文件時,我遇到了類似的問題:

arm-eabi-gdb: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

我通過安裝libpython2.7:i386解決了它libpython2.7:i386 (注意:i386后綴)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM