others - Python可执行文件找不到 libpython共享库

我想在CentOS 上安装Python 2.7,构建并安装python,如下所示,


./configure --enable-shared --prefix=/usr/local
make
make install

当我尝试运行/usr/local/bin/python,时,我得到这个错误消息,


/usr/local/bin/python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

当我在/usr/local/bin/python,上运行ldd时


ldd /usr/local/bin/python
 libpython2.7.so.1.0 => not found
 libpthread.so.0 => /lib64/libpthread.so.0 (0x00000030e9a00000)
 libdl.so.2 => /lib64/libdl.so.2 (0x00000030e9200000)
 libutil.so.1 => /lib64/libutil.so.1 (0x00000030fa200000)
 libm.so.6 => /lib64/libm.so.6 (0x00000030e9600000)
 libc.so.6 => /lib64/libc.so.6 (0x00000030e8e00000)
 /lib64/ld-linux-x86-64.so.2 (0x00000030e8a00000)

时间:

请尝试以下操作:


LD_LIBRARY_PATH=/usr/local/lib /usr/local/bin/python

/usr/local/lib替换为已安装libpython2.7.so.1.0的文件夹(如果不在/usr/local/lib中)。

如果这样做有效,并且你希望使更改永久化,则有两个选项:

  1. 添加export LD_LIBRARY_PATH=/usr/local/lib转到你的主目录中的.profile (仅当使用shell时,它才有效,在启动新的shell实例时加载此文件),此设置将仅影响你的用户。

  2. /usr/local/lib添加到/etc/ld.so.conf并运行ldconfig,这是系统范围的设置。


./configure --enable-shared 
 --prefix=/usr/local 
 LDFLAGS="-Wl,--rpath=/usr/local/lib"

或者,如果你更喜欢非linux版本:


./configure --enable-shared 
 --prefix=/usr/local 
 LDFLAGS="-R/usr/local/lib"


./configure --enable-shared 
 --with-system-ffi 
 --with-system-expat 
 --enable-unicode=ucs4 
 --prefix=/apps/python-${PYTHON_VERSION} 
 LDFLAGS="-L/apps/python-${PYTHON_VERSION}/extlib/lib -Wl,--rpath=/apps/python-${PYTHON_VERSION}/lib -Wl,--rpath=/apps/python-${PYTHON_VERSION}/extlib/lib" 
 CPPFLAGS="-I/apps/python-${PYTHON_VERSION}/extlib/include"

我也有同样的问题,我用这种方式解决了它:

如果你知道libpython驻留在何处,我假设它是/usr/local/lib/libpython2.7.so.1.0,在你的情况下,可以创建一个符号链接,


sudo ln -s /usr/local/lib/libpython2.7.so.1.0 /usr/lib/libpython2.7.so.1.0

然后尝试再次运行ldd,看看它是否工作。

我使用以下命令安装:


./configure --prefix=/usr 
 --enable-shared 
 --with-system-expat 
 --with-system-ffi 
 --enable-unicode=ucs4 &&

make

现在,作为root用户:


make install &&
chmod -v 755 /usr/lib/libpython2.7.so.1.0

然后我尝试执行python并得到错误:


/usr/local/bin/python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory

然后,我从root用户注销,再次尝试执行python,它成功工作。

...