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

时间:2017-04-10 21:31:46

标签: python python-3.x virtualenv

我使用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

9 个答案:

答案 0 :(得分:18)

  1. 有人说这种方式可以解决问题(我不知道它是否有效,因为我以另一种方式解决问题):将py3.4的lib路径添加到$ LD_LIBRARY_PATH环境变量 首先找出python3.4的lib路径(在它安装的文件夹中),像我一样是:/ opt / python361 / lib,然后将它添加到环境变量中:
  2.       for (var i = 0; i < 10; i++)
          {
              for (var j = 0; j < 15; j++)
              {
                  var selectorA = '#Row'+(i+1)+'Sub' + (j+1) + '_ClientDropDown';
                  var selectorB = "Row" + (i+1) + "_Sub" + (j+1).ToString() + "_ClientDropDown";
    
                  $(selectorA).ready(function() 
                       { TrimServices_Function(selectorB); })
    
              }
          }
    
    1. 我在使用virtualenv和python3.6时遇到了类似的问题,我修复了以下方法:
      • 首先,编辑export LD_LIBRARY_PATH = $LD_LIBRARY_PATH:/opt/python361/lib ,将python3.x的lib路径添加到此文件(就像我:/ opt / python361 / lib),并保存此conf文件的修改;
      • 然后,按sudo vi /etc/ld.so.conf激活此文件。就是这样。

答案 1 :(得分:5)

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

答案 2 :(得分:2)

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

我只是做过:sudo cp ~/Python3.6.9/libpython3.6m.so.1.0 /usr/local/lib/python3.6/

和:export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/python3.6

答案 3 :(得分:1)

对于Python 3.6,它已由

修复。
sudo apt-get install libpython3.6-dev

答案 4 :(得分:1)

在python 3.8上,我通过删除virtualenv目录(在我的情况下为./venv)并使用由pip安装的venv安装的python内置的virtualenv模块来重新创建此问题。我在arch Linux上,也首先做了sudo pacman -Syu。 Python最初仅使用sudo pacman -S python安装。

$ rm -r ./venv
$ python -m venv venv
$ . ./venv/bin/activate
$ python --version
Python 3.8.1

答案 5 :(得分:0)

另一种方法是在配置中添加getSharedPreferences(),例如

LDFLAGS="-Wl,-rpath /usr/local/lib"

./configure --prefix=/usr/local --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib" /usr/local/lib文件所在的路径

答案 6 :(得分:0)

对上面的荣誉,对于python 3.x,您可以使用以下方法解决此问题:

sudo apt-get install libpython3.x-dev

无需手动更改环境路径。

答案 7 :(得分:0)

我通过安装软件包来运行它

sudo apt-get install libpython3.x-dev 

答案 8 :(得分:0)

这个对我有用。

cd ~/
vim .bashrc
export LD_LIBRARY_PATH=~/miniconda/envs/python3.6/lib/