除非从根目录运行,否则不会加载Python库

时间:2019-01-07 22:54:01

标签: python shared-libraries dlib .so

我有一些使用dlib的代码,但是当我尝试在python代码中导入dlib时出现此错误:

File "boom.py", line 32, in <module>
    from faceSwap import *
File "/home/user/coding/faceSwap.py", line 22, in <module>
import dlib
ImportError: libboost_python-py27.so.1.49.0: cannot open shared object file: No 
such file or directory

但是,当我以root身份运行时-它运行得很好!但是我不想以root用户身份运行守护程序-所以我很想解决这个问题。我试图通过PIP多次卸载/重新安装dlib,但没有成功。

当我检查库时,即使DLIB确实在以root用户身份运行python程序时运行,root和用户级别的帐户也似乎缺少该库:

用户:

$ whereis  libboost_python-py27.so.1.49.0
libboost_python-py27.so.1.49:

根:

# whereis libboost_python-py27.so.1.49.0
libboost_python-py27.so.1.49:

root和用户帐户都使用相同的python

 /usr/local/bin/python

我唯一的线索是用户帐户dlib找不到:

 /usr/lib/libboost_python-py27.so.1.49.0 

但根目录有效并且似乎正在使用:

 /usr/local/lib/python2.7/dist-packages/dlib.so

有什么想法可以解决或解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

可以尝试的事物:

1)确保以root和普通用户使用相同版本的python。 which python应该可以在基于Unix的操作系统上使用。以root身份尝试并进行比较,以查看python的安装是否相同。

2)重新安装boost。确保它是正确的版本。尝试使用pip

3)如果是权限问题,则可以使用chown更改相关目录的权限,以确保程序可以访问它。不建议这样做。而且我不认为这是问题所在,因为错误表明它找不到libboost。这意味着安装存在一些问题。

4)从源代码安装dlib。很简单在此处查看更多信息:http://dlib.net/compile.html。本质上,下载最新版本并从主dlib文件夹运行python setup.py install。如果您需要更多帮助,我可以指导您。