首页 > 解决方案 > 除非从根目录运行,否则 Python 库不会加载

问题描述

我有一些代码正在使用 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,但均未成功。

当我检查库时,它似乎确实从 root 和用户级别帐户中丢失,即使 DLIB 实际上在 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

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

标签: pythonshared-librariesdlib.so

解决方案


您可以尝试几件事:

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

2)重新安装升压。确保它是正确的版本。尝试使用pip这样做。

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

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


推荐阅读