python:加载共享库时出错:libpython3.4m.so.1.0:无法打开共享对象文件:没有这样的文件或目录

use*_*099 20 python virtualenv python-3.x

我使用virtualenv创建了一个python虚拟环境,在激活之后,我可以看到Python的安装位置,

(virtualenv-test)bash-4.1 $ whereis python

python:/usr/bin/python2.6 /usr/bin/python2.6-config/usr/bin/python /usr/lib/python2.6 /usr/lib64/python2.6/usr/X11R6/bin/python2 .6 /usr/X11R6/bin/python2.6-config/usr/X11R6/bin/python /usr/bin/X11/python2.6 /usr/bin/X11/python2.6-config/usr/bin/X11/python /usr/include/python2.6 /usr/share/man/man1/python.1.gz

(virtualenv-test)bash-4.1 $ python

/数据/的virtualenv测试/ bin中/蟒

但是,在输入python之后,我收到以下错误信息,可能是什么原因?

(virtualenv-test) bash-4.1$ python
python: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory
Run Code Online (Sandbox Code Playgroud)

小智 22

1.有人说这种方式可以解决问题(我不知道它是否有效,因为我以另一种方式解决问题):将py3.4的lib路径添加到$ LD_LIBRARY_PATH环境变量

首先找出python3.4的lib路径(在它安装的文件夹中),像我一样:/ opt/python361/lib,然后将其添加到环境变量中: sudo vi /etc/ld.so.conf

2.在使用virtualenv和python3.6时我遇到了类似的问题,我修复了以下方法:

  • 首先,编辑sudo /sbin/ldconfig -v,将python3.x的lib路径添加到此文件(就像我:/ opt/python361/lib),并保存此conf文件的修改;
  • 然后,通过激活此文件sudo vi /etc/ld.so.conf.就这样.

  • 2.为我工作.你能指点我一个好资源的方向来理解为什么这有效吗?谢谢. (7认同)
  • 在 centos 7 中是 ```export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib``` (5认同)
  • 1. 在 Red Hat 上成功了(没有虚拟环境)。我的路径是 /opt/local/lib (我在调用 ./configure 时使用 --enable-shared 从源代码构建了 python,并打印出了共享文件的路径。 (2认同)

bux*_*oum 20

另一种方法是添加LDFLAGS="-Wl,-rpath /usr/local/lib"配置,例如

./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
Run Code Online (Sandbox Code Playgroud)

/usr/local/liblibpython3.*.so文件所在的路径


Pob*_*obe 9

export LD_LIBRARY_PATH=[your python path to libpython3.4m.so]

libpython3.4m.so 在构建它的python源代码下。

将其放在您的.bashrc中以将其设置为自动登录。

我无法在计算机上将virtualenv强制设置为3.4,但您可以看到在libvirtualenv的下面只有一堆符号链接指向本地python安装。我想libpython3.4m.so是其中之一。


Ast*_*iul 6

对我来说,libpython3.6m.so.1.0位于我下载 Python 源代码的文件夹 ( ~/Python3.6.9) 中。

我只是做了:

sudo cp ~/Python3.6.9/libpython3.6m.so.1.0 /usr/local/lib/python3.6/
Run Code Online (Sandbox Code Playgroud)

和:

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/python3.6
Run Code Online (Sandbox Code Playgroud)


A. *_*tia 5

对于Python 3.6,它已由修复。

sudo apt-get install libpython3.6-dev
Run Code Online (Sandbox Code Playgroud)

  • python 3.6 在我的存储库中不可用。我在杰西身边 耶! (3认同)
  • 对于 Python 3.9:`sudo apt-get install libpython3.9-dev` (2认同)

小智 5

这对我有用。

cd ~/
vim .bashrc
export LD_LIBRARY_PATH=~/miniconda/envs/python3.6/lib/
Run Code Online (Sandbox Code Playgroud)