解决pip install dlib报错C++11 is required to use dlib

目录
  • 1.错误原因
  • 2.原因分析
  • 3.解决办法

1.错误原因

在使用pip install dlib安装dlib的时候报错,

错误的详细信息如下:

ERROR: Command errored out with exit status 1:
command: /root/miniconda3/envs/cv_1/bin/python -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘"’"’/tmp/pip-install-jpjqw_8i/dlib_a6680215d7d4421581b7b4999664056c/setup.py’"’"’; file=’"’"’/tmp/pip-install-jpjqw_8i/dlib_a6680215d7d4421581b7b4999664056c/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/pip-wheel-pi50j_zu
cwd: /tmp/pip-install-jpjqw_8i/dlib_a6680215d7d4421581b7b4999664056c/
Complete output (76 lines):
running bdist_wheel
running build
running build_py
package init file ‘tools/python/dlib/init.py’ not found (or not a regular file)
running build_ext
Building extension for Python 3.6.13 |Anaconda, Inc.| (default, Jun 4 2021, 14:25:59)
Invoking CMake setup: ‘cmake /tmp/pip-install-jpjqw_8i/dlib_a6680215d7d4421581b7b4999664056c/tools/python -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/tmp/pip-install-jpjqw_8i/dlib_a6680215d7d4421581b7b4999664056c/build/lib.linux-x86_64-3.6 -DPYTHON_EXECUTABLE=/root/miniconda3/envs/cv_1/bin/python -DCMAKE_BUILD_TYPE=Release’
– The C compiler identification is GNU 11.2.0
– The CXX compiler identification is GNU 4.8.5
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Check for working C compiler: /usr/bin/cc - skipped
– Detecting C compile features
– Detecting C compile features - done
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Check for working CXX compiler: /usr/bin/c++ - skipped
– Detecting CXX compile features
– Detecting CXX compile features - done
– Found PythonInterp: /root/miniconda3/envs/cv_1/bin/python (found version “3.6.13”)
– Found PythonLibs: /root/miniconda3/envs/cv_1/lib/libpython3.6m.so
– Performing Test HAS_CPP14_FLAG
– Performing Test HAS_CPP14_FLAG - Failed
– Performing Test HAS_CPP11_FLAG
– Performing Test HAS_CPP11_FLAG - Success
– pybind11 v2.2.4
– Using CMake version: 3.21.2
– Compiling dlib version: 19.23.0
CMake Error at /tmp/pip-install-jpjqw_8i/dlib_a6680215d7d4421581b7b4999664056c/dlib/cmake_utils/set_compiler_specific_options.cmake:50 (message):
C++11 is required to use dlib, but the version of GCC you are using is too
old and doesn’t support C++11. You need GCC 4.9 or newer.
Call Stack (most recent call first):
/tmp/pip-install-jpjqw_8i/dlib_a6680215d7d4421581b7b4999664056c/dlib/cmake_utils/test_for_sse4/CMakeLists.txt:8 (include)

接下来我们找错误提示的重点信息:

C++11 is required to use dlib, but the version of GCC you are using is too
old and doesn’t support C++11. You need GCC 4.9 or newer.

2.原因分析

从错误信息上来看是由于gcc的版本低于4.9导致无法支持C++ 11,查看gcc的版本

#查看gcc的版本信息
gcc --version
:'
gcc (GCC) 11.2.0
Copyright (C) 2021 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
'

从输出的gcc版本信息来看,不应该出错呀,因为gcc的版本已经大于4.9了。

出错的原因在于安装dlib的时候使用了conda的虚拟环境,而在环境内有一个低于4.9的gcc,而默认使用的正是这个版本,所以导致出错了。

3.解决办法

改变conda环境下的gcc版本:

1.查看conda环境下的gcc版本

gcc --version或gcc -v

2.替换gcc的版本

利用软连接来覆盖conda环境下的gcc版本

命令如下:

ln -s /usr/local/bin/gcc /home/name/anconda3/envs/env_name/bin/gcc

找不到conda中安装的gcc:

我就属于这种情况,在conda中找不到任何关于gcc的信息,在conda环境下使用gcc -v输出的版本也和没有使用conda环境输出的版本信息一致。

1.找到gcc的安装位置

which gcc
#/usr/local/bin/gcc

2.导入环境变量

#激活conda环境
source activate cv
#设置环境变量
export CC=/usr/local/bin/gcc

终极解决办法:

在环境外编译dlib的源码,生成whl文件,然后再环境内通过whl文件来安装dlib,

步骤如下:

#clone dlib的源码
git clone https://github.com/davisking/dlib.git
#编译dlib
mkdir build; cd build; cmake .. ; cmake --build .
#安装python版本的dlib
python setup.py install

到此这篇关于pip install dlib报错C++11 is required to use dlib的文章就介绍到这了,更多相关报错C++11 is required to use dlib内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python3安装模块报错Microsoft Visual C++ 14.0 is required的解决方法

    问题一:安装模块时出现报错 Microsoft Visual C++ 14.0 is required,也下载安装了运行库依然还是这个错误 解决: 1.打开Unofficial Windows Binaries for Python Extension Packages(http://www.lfd.uci.edu/~gohlke/pythonlibs/),这里面有很多封装好的Python模块的运行环境 2.找到所需要下载的模块文件对应版本进行下载. 如,需要下载Pymssql,本机安装是32位

  • 解决pip install dlib报错C++11 is required to use dlib

    目录 1.错误原因 2.原因分析 3.解决办法 1.错误原因 在使用pip install dlib安装dlib的时候报错, 错误的详细信息如下: ERROR: Command errored out with exit status 1:command: /root/miniconda3/envs/cv_1/bin/python -u -c ‘import sys, setuptools, tokenize; sys.argv[0] = ‘"’"’/tmp/pip-install-j

  • 解决安装mysqlclient的时候出现Microsoft Visual C++ 14.0 is required报错

    在安装mysqlclient的时候出现了以下报错: 解决办法: 1.到提示网址:https://visualstudio.microsoft.com/download/里面下载对应VC++版本安装后继续安装mysqlclient.但是本人没有找到对应文件,故不再过多赘述,这里说下第二种方法. 2.1到https://www.lfd.uci.edu/~gohlke/pythonlibs/找到mysqlclient编译包下载对应版本: 注:前面代表python版本,后面的win代表Python位数.

  • 解决VC++编译报错error C2248的方案

    在使用诸如:CArray或是 CList等类时,经常会出现此错误 此错误的原因是由于自定义的类的数组项时 有一个操作如  Add()  在这个操作中,实际上需要一个 = 操作,但是这个 =操作在 自定义类中没有实现,于是,程序自动去它的parent 类 也就是 CObject 类去找,但是却找到个这个类的 = 是一个 private  于是就报了这个错误. 知道了原因解决方法自然就有了,那就是在自定义类中 重载操作符 =   重载后 这个错误就没有了. class COptRect : publ

  • 如何基于C++解决RTSP取流报错问题

    使用g++ opencv_demo.cpp -o test 会报以下错误 这是我的代码: #include <string> #include <iostream> #include <time.h> #include <opencv2/highgui/highgui.hpp> #include <opencv2/opencv.hpp> #include <opencv2/core.hpp> #include <opencv2/

  • 解决pip install xxx报错SyntaxError: invalid syntax的问题

    python--pip install xxx报错SyntaxError: invalid syntax 在安装好python后,进入python运行环境后,因为我要用pip安装开发Web App需要的第三方库,执行pip install aiohttp,发现会报错SyntaxError: invalid syntax,刚开始以为是拼写或者空格问题或者python版本问题,结果用pip3还是一样的. 然后百度了一下,发现原来用pip安装时都要在cmd命令行里启动的,而在python中无法运行.退

  • pycharm 2020.2.4 pip install Flask 报错 Error:Non-zero exit code的问题

    Problem: Solution: 参考stackoverflow给出的解决方案:https://stackoverflow.com/questions/65085956/pycharm-venv-failed-no-such-option-build-dir ① 确定自己pycharm里面python解释器的路径: ② 在cmd里面输入:自己解释器的路径 + -m pip install pip==20.2.4 (其中可能会有网络问题提示Retry,要多尝试几次) 这里做法的主要原因是:py

  • 解决pip install的时候报错timed out的问题

    安装包的时候报错,执行:pip install pyinstaller 问题: File "c:\python\python35\lib\site-packages\pip\_vendor\requests\packages\urllib3\response.py", line 357, in stream data = self.read(amt=amt, decode_content=decode_content) File "c:\python\python35\lib

  • window环境下npm install node-sass报错的解决方法

    最近准备想用vue-cli初始化一个项目,需要sass-loader编译: 发现window下npm install node-sass和sass-loader一直报错, window 命令行中提示我全局安装 node-gyp ,有些提示好像是本地找不到python, 于是我按照提示安装node-gyp node-gyp是一个用Node.js编写的跨平台命令行工具,用于编译Node.js的本地插件模块. node-gyp node-gyp官方网址  https://www.npmjs.com/p

  • npm install安装报错:gyp info it worked if it ends with ok的解决方法

    目录 1.可能原因1:node和node-sass版本冲突, 2.node.js卸载与安装 3.node-sass卸载安装, 4.安装好后对应版本的node和node-sass后启动 总结 前端vue新项目 npm install安装报错 gyp info it worked if it ends with ok 1.可能原因1:node和node-sass版本冲突, 对应的node和node-sass的版本如下 2.node.js卸载与安装 之前有安装过弄过node.js的 如果node.js

  • 解决pip install psycopg2出错问题

    pip install psycopg2出现错误: Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple Collecting psycopg2 Using cached https://pypi.tuna.tsinghua.edu.cn/packages/84/d7/6a93c99b5ba4d4d22daa3928b983cec66df4536ca50b22ce5dcac65e4e71/psycopg2-2.8.4.tar.g

  • vue 解决uglifyjs-webpack-plugin打包出现报错的问题

    楼主最新对已做项目进行打包优化,配置了打包环境下去除console.log语句插件---使用uglifyjs-webpack-plugin 具体代码如下 npm install uglifyjs-webpack-plugin -D const UglifyJsPlugin = require('uglifyjs-webpack-plugin') configureWebpack: config => { if (isProduction) { config.plugins = config.pl

  • 解决Python安装cryptography报错问题

    错误一: gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -DUSE__THREAD -DHAVE_SYNC_SYNCHRONIZE -I/usr/include/ffi -I/usr/include/libffi -I/usr/include/python2.7 -c c/_cffi_backend.c -o build/temp.linux-x86_64-2.7

  • 解决vue安装less报错Failed to compile with 1 errors的问题

    1.创建vue项目后安装less,执行 npm install less less-loader --save-dev 下载版本为:less-loader@6.1.0 , less@3.11.3,重启服务报错,报错信息如下: 2.报错原因 less 本版太高需要降低版本,执行代码 先移除之前版本: npm uninstall less-loader 下载指定版本: npm install less-loader@5.0.0 -D 3.重启代码就可以了,若还是报错可移除文件node_modules

随机推荐