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

2024-05-15 20:44:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我用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$ which python

/data/virtualenv-test/bin/python

但是,在输入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

Tags: testbashconfigbinvirtualenvincludelibusr
3条回答
  1. 有人说这种方法可以解决问题(我不知道它是否有效,因为我用另一种方法解决问题):将py3.4的lib path添加到$LD_LIBRARY_path环境变量 首先找出python3.4的lib路径(在它安装的文件夹中),比如me是/opt/python361/lib,然后将其添加到环境变量:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/python361/lib
  1. 在将virtualenv与python3.6一起使用时,我遇到了类似的问题,并按照以下方式进行了修复:
    • 首先,编辑sudo vi /etc/ld.so.conf,将python3.x的lib路径添加到这个文件中(比如我是/opt/python361/lib),并保存对这个conf文件的修改
    • 然后,通过sudo /sbin/ldconfig -v激活此文件。这就是全部。

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

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

把它放在.bashrc中,以便在登录时自动设置它。

我不能在我的机器上强制virtualenv为3.4,但是您可以看到virtualenv的lib下只有一堆指向本地python安装的符号链接。我想libpython3.4m.so是其中一个来取的。

对于Python3.6,它是由

sudo apt-get install libpython3.6-dev

相关问题 更多 >