【问题标题】:Error while installing dlib安装 dlib 时出错
【发布时间】:2017-10-02 15:26:13
【问题描述】:

我跟着 this tutorial 安装 dlib,但是当我运行 pip install dlib 时,我得到了

收集dlib

使用缓存的 dlib-19.4.0.tar.gz 为收集的包构建轮子:dlib

为 dlib 运行 setup.py bdist_wheel ... 错误

命令 /home/leo/.virtualenvs/py3_dlib_tutorial/bin/python3 -u -c "import setuptools, tokenize;file='/tmp/pip-build-4luevi_i/dlib 的完整输出/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n' );f.close();exec(compile(code, file, 'exec'))" bdist_wheel -d /tmp/tmpv2rhc6cbpip-wheel- --python-tag cp36:

运行 bdist_wheel

运行构建

检测到的 Python 架构:64 位

检测到的平台:linux

正在配置 cmake ...

/usr/bin/cmake: /home/leo/anaconda3/lib/libcurl.so.4: 没有可用的版本信息(/usr/bin/cmake 需要)

/usr/bin/cmake: /home/leo/anaconda3/lib/libstdc++.so.6: 找不到版本“CXXABI_1.3.9”(/usr/bin/cmake 需要)

/usr/bin/cmake: /home/leo/anaconda3/lib/libstdc++.so.6: 找不到版本“GLIBCXX_3.4.20”(/usr/bin/cmake 需要)

/usr/bin/cmake: /home/leo/anaconda3/lib/libstdc++.so.6: 找不到版本“GLIBCXX_3.4.21”(/usr/bin/cmake 需要)

/usr/bin/cmake: /home/leo/anaconda3/lib/libstdc++.so.6: 找不到版本“GLIBCXX_3.4.21”(/usr/lib/x86_64-linux-gnu/libjsoncpp.so 需要.1)

错误:cmake 配置失败!

有什么建议可以解决这个问题吗?

更新

我使用的是 ubuntu 16.04

我还注意到,当我运行 sudo pip install dlib 时它可以工作,但是 然后我得到 ​​p>

 (py3_dlib_tutorial) ~$ python
Python 3.6.0 |Continuum Analytics, Inc.| (default, Dec 23 2016, 12:22:00) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'dlib'

更新

似乎在此之前的修复导致了错误

我在我的 .bashrc 中禁用了这一行

export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/leo/anaconda3/lib

这是使mkvirtualenv 工作所必需的。 现在pip install dlib 工作了,但我仍然收到类似的错误

python
Python 3.6.0 |Anaconda custom (64-bit)| (default, Dec 23 2016, 12:22:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/leo/anaconda3/lib/python3.6/site-packages/dlib/__init__.py", line 1, in <module>
    from .dlib import *
ImportError: /home/leo/anaconda3/bin/../lib/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-gnu/libboost_python-py35.so.1.58.0)

【问题讨论】:

  • 您是否安装了 dlib 必备软件?你用的是什么操作系统?
  • 如果您已经安装了先决条件,请尝试安装 boost python。 sudo apt install libboost-all-dev 然后尝试pip install dlib
  • libboost-all-dev 已经是已安装的最新版本(1.58.0.1ubuntu1)...
  • 你的cmake版本是多少?
  • 使用 cmake --version 我得到同样的错误,但 sudo apt-get install cmake 说 cmake 已经是最新版本(3.5.1-1ubuntu3)。

标签: c++ python-3.x c++11 cmake dlib


【解决方案1】:

要解决此错误:

python
Python 3.6.0 |Anaconda custom (64-bit)| (default, Dec 23 2016, 12:22:00)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linux 
Type "help", "copyright", "credits" or "license" for more information.
>>> import dlib
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/leo/anaconda3/lib/python3.6/site-packages/dlib/__init__.py", line 1, in <module>
from .dlib import *
ImportError: /home/leo/anaconda3/bin/../lib/libstdc++.so.6: version     `GLIBCXX_3.4.21' not found (required by /usr/lib/x86_64-linux-
gnu/libboost_python-py35.so.1.58.0)

您需要从 Python 3.6 迁移到 Python 3.5。 如果您使用的是anaconda,可以通过设置新环境来完成:

conda create -env_name python=3.5 anaconda
activate env_name
conda install -c menpo dlib 

这应该可以工作,并且您的 dlib 将正常工作。

【讨论】:

    猜你喜欢
    • 2019-06-14
    • 2017-11-19
    • 1970-01-01
    • 2018-02-18
    • 2020-07-16
    • 2020-09-02
    • 2022-01-04
    相关资源
    最近更新 更多