conda环境下 ERROR: CMake must be installed to build dlib问题解决

news2024/9/22 15:43:50

1 问题描述

pip install -r requirements.txt 

在构建video_retalking项目过程中,使用命令安装依赖包时,出现如下错误:

Building wheels for collected packages: face-alignment, dlib, ffmpy, future
  Building wheel for face-alignment (setup.py) ... done
  Created wheel for face-alignment: filename=face_alignment-1.3.4-py2.py3-none-any.whl size=27844 sha256=1099ac2f57890d2e4d94b972703f5a6ccf487376bad7cd60ee7a00c6f84736e9
  Stored in directory: /root/.cache/pip/wheels/da/f8/cf/6ba533b36b381bf8f2ed87d82b95e5097c4f2ca9aab1acb8cf
  Building wheel for dlib (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [7 lines of output]
      running bdist_wheel
      running build
      running build_py
      running build_ext
      
      ERROR: CMake must be installed to build dlib
      
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for dlib
  Running setup.py clean for dlib
  Building wheel for ffmpy (setup.py) ... done
  Created wheel for ffmpy: filename=ffmpy-0.3.1-py3-none-any.whl size=5579 sha256=61354e3c970907807c38694ea3da2a6183ac05bf4497ed85eac27222e15cf2a9
  Stored in directory: /root/.cache/pip/wheels/0f/7f/ad/15fba8ee0656ffade5c40beace0c545743e91060c8af30efc9
  Building wheel for future (setup.py) ... done
  Created wheel for future: filename=future-0.18.3-py3-none-any.whl size=492024 sha256=f2792f6ac146614217f9fd5808a2025c68f1fc8c4785c5486eec94e4404ba96e
  Stored in directory: /root/.cache/pip/wheels/07/14/8c/1cb73be9422f7e071f24ed77cb8e51eb87ac17e6fc06640715
Successfully built face-alignment ffmpy future
Failed to build dlib
ERROR: Could not build wheels for dlib, which is required to install pyproject.toml-based projects

2 问题分析

从异常信息可以看出,安装dlib是需要cmake,使用命令安装cmake

yum install cmake

安装完成后,再次运行出现如下错误:

Building wheels for collected packages: dlib
  Building wheel for dlib (setup.py) ... error
  error: subprocess-exited-with-error
  
  × python setup.py bdist_wheel did not run successfully.
  │ exit code: 1
  ╰─> [68 lines of output]
      running bdist_wheel
      running build
      running build_py
      running build_ext
      Building extension for Python 3.8.18 | packaged by conda-forge | (default, Oct 10 2023, 15:44:36)
      Invoking CMake setup: 'cmake /tmp/pip-install-92e1e42i/dlib_b04bbb8202ab4a81b4fd32bf1517ed88/tools/python -DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/tmp/pip-install-92e1e42i/dlib_b04bbb8202ab4a81b4fd32bf1517ed88/build/lib.linux-x86_64-cpython-38 -DPYTHON_EXECUTABLE=/root/anaconda3/envs/retalking/bin/python3.8 -DCMAKE_BUILD_TYPE=Release'
      -- The C compiler identification is unknown
      CMake Error at /usr/share/cmake/Modules/CMakeDetermineCXXCompiler.cmake:55 (message):
        Could not find compiler set in environment variable CXX:
      
        g++.
      
      Call Stack (most recent call first):
        CMakeLists.txt:14 (project)
      
      
      CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
      Missing variable is:
      CMAKE_CXX_COMPILER_ENV_VAR
      CMake Error: Error required internal CMake variable not set, cmake may be not be built correctly.
      Missing variable is:
      CMAKE_CXX_COMPILER
      CMake Error: Could not find cmake module file: /tmp/pip-install-92e1e42i/dlib_b04bbb8202ab4a81b4fd32bf1517ed88/build/temp.linux-x86_64-cpython-38/CMakeFiles/2.8.12.2/CMakeCXXCompiler.cmake
      CMake Error: your C compiler: "CMAKE_C_COMPILER-NOTFOUND" was not found.   Please set CMAKE_C_COMPILER to a valid compiler path or name.
      CMake Error: CMAKE_CXX_COMPILER not set, after EnableLanguage
      -- Configuring incomplete, errors occurred!
      See also "/tmp/pip-install-92e1e42i/dlib_b04bbb8202ab4a81b4fd32bf1517ed88/build/temp.linux-x86_64-cpython-38/CMakeFiles/CMakeOutput.log".
      See also "/tmp/pip-install-92e1e42i/dlib_b04bbb8202ab4a81b4fd32bf1517ed88/build/temp.linux-x86_64-cpython-38/CMakeFiles/CMakeError.log".
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/tmp/pip-install-92e1e42i/dlib_b04bbb8202ab4a81b4fd32bf1517ed88/setup.py", line 222, in <module>
          setup(
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/__init__.py", line 103, in setup
          return distutils.core.setup(**attrs)
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 185, in setup
          return run_commands(dist)
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/_distutils/core.py", line 201, in run_commands
          dist.run_commands()
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 969, in run_commands
          self.run_command(cmd)
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/wheel/bdist_wheel.py", line 368, in run
          self.run_command("build")
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/_distutils/command/build.py", line 131, in run
          self.run_command(cmd_name)
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/_distutils/cmd.py", line 318, in run_command
          self.distribution.run_command(command)
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/dist.py", line 989, in run_command
          super().run_command(command)
        File "/root/anaconda3/envs/retalking/lib/python3.8/site-packages/setuptools/_distutils/dist.py", line 988, in run_command
          cmd_obj.run()
        File "/tmp/pip-install-92e1e42i/dlib_b04bbb8202ab4a81b4fd32bf1517ed88/setup.py", line 134, in run
          self.build_extension(ext)
        File "/tmp/pip-install-92e1e42i/dlib_b04bbb8202ab4a81b4fd32bf1517ed88/setup.py", line 171, in build_extension
          subprocess.check_call(cmake_setup, cwd=build_folder)
        File "/root/anaconda3/envs/retalking/lib/python3.8/subprocess.py", line 364, in check_call
          raise CalledProcessError(retcode, cmd)
      subprocess.CalledProcessError: Command '['cmake', '/tmp/pip-install-92e1e42i/dlib_b04bbb8202ab4a81b4fd32bf1517ed88/tools/python', '-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=/tmp/pip-install-92e1e42i/dlib_b04bbb8202ab4a81b4fd32bf1517ed88/build/lib.linux-x86_64-cpython-38', '-DPYTHON_EXECUTABLE=/root/anaconda3/envs/retalking/bin/python3.8', '-DCMAKE_BUILD_TYPE=Release']' returned non-zero exit status 1.
      [end of output]
  
  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for dlib
  Running setup.py clean for dlib
Failed to build dlib
ERROR: Could not build wheels for dlib, which is required to install pyproject.toml-based projects

3 问题解决

yum install -y cmake
yum install -y make
yum install -y gcc
yum install -y gcc-c++

 注意:安装完成后,要重新连接shell,再次运行依赖安装命令

pip install -r requirements.txt 

不再报错,问题解决。

 4 conda环境介绍

Conda是一个开源的包管理器和环境管理系统,用于安装、运行和更新包和其依赖项。它是由Anaconda, Inc.(以前称为Continuum Analytics)创建,用于支持Python程序开发,但它也可以用来管理来自其他语言的包。Conda使得包管理和环境隔离变得简单,对于处理多个项目中的依赖关系和版本控制尤其有用。

Conda是一个强大的工具,对于管理复杂的Python项目和环境至关重要。它简化了包管理和环境设置,使得Python开发更加容易和高效。通过使用Conda,开发者可以确保他们的项目在不同机器和操作系统上都能以相同的方式运行,大大提高了项目的可移植性和可复现性。

4.1 Conda的核心功能

  • 包管理:Conda作为包管理器,可以安装、更新和移除Python包。它通过Conda仓库,如Anaconda Cloud或Conda Forge,来获取包。

  • 环境管理:Conda允许用户创建隔离的环境,以便于不同项目可以拥有不同的库和/或Python版本。这在处理不兼容的依赖项或不同项目的需求时非常有用。

  • 跨平台:Conda支持Linux、OS X和Windows,并允许创建跨平台的Python环境。

  • 开源:Conda是开源的,允许用户查看源代码并对其进行改进。

4.2 使用Conda的优势

  • 解决依赖性问题:Conda可以自动解决包之间的依赖关系,简化了安装过程。

  • 环境隔离:创建独立的环境可以避免包之间的版本冲突,使得项目更稳定。

  • 易于使用:Conda的命令行界面简单直观,易于学习和使用。

  • 广泛的包支持:Conda支持Python的许多流行库和应用程序。

  • 社区支持:作为一个流行的工具,Conda拥有一个活跃的社区,用户可以从中找到支持和资源。

4.3 Conda环境的创建和管理

  • 创建新环境:使用conda create命令创建一个新环境,可以指定Python版本和所需的包。

  • 激活环境:使用conda activate命令来激活环境。

  • 安装包:在激活的环境中使用conda install命令来安装新的包。

  • 环境列表:使用conda env list来查看所有可用的Conda环境。

  • 移除环境:使用conda env remove命令来移除不再需要的环境。

4.4 应用场景

  • 数据科学和机器学习:Conda非常适合于数据科学和机器学习项目,这些项目通常需要多个库和框架。

  • 软件开发:软件开发者使用Conda来管理项目依赖,确保一致的开发环境。

  • 教学和学术研究:教师和研究人员使用Conda来创建具有特定库和工具的环境,用于教学和研究。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1264373.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Unity中Shader的BRDF解析(三)

文章目录 前言一、BRDF中的镜面反射项二、分别解析每一个参数1、D、G函数&#xff1a;speclarTerm2、其他中间步骤3、光照颜色4、F函数&#xff08;菲涅尔函数&#xff09; &#xff1a;FresnelTermIBL在下篇文章中继续解析 三、最终代码.cginc文件:Shader文件&#xff1a; 前言…

ASCII值对照表

ASCII码是一种7位编码&#xff0c;但它存放时必须占全1个字节&#xff0c;也即占用8位&#xff0c;最高位为0&#xff0c;其余7位表示ASCII码。 ASCII 码使用指定的7 位或8 位二进制数组合来表示128 或256 种可能的字符包括所有的大写和小写字母&#xff0c;数字0 到9、标点符…

富富集网络图绘制教程

本期教程 前言 今天学习aPEAR包&#xff0c;绘制KEGG和GO功能富集网络图&#xff0c;用起来还是比较方便的&#xff0c;直接将clusterProfiler富集结果进行绘制&#xff0c;对人类、动物等分析结果非常方便。对于模式植物&#xff0c;使用自己制作的GO或KEGG背景文件进行富集分…

5款最常用的Android测试框架(含代码示例)

前言 今天&#xff0c;我们就要说说5款最常用的Android测试框架&#xff0c;并且每个框架都给出了基本的代码示例。 在这我为大家准备了一份软件测试视频教程&#xff08;含面试、接口、自动化、性能测试等&#xff09;&#xff0c;就在下方&#xff0c;需要的可以直接去观看…

Django二转Day02

http #1 http 是什么#2 http特点#3 请求协议详情 -请求首行---》请求方式&#xff0c;请求地址&#xff0c;请求协议版本 -请求头---》key:value形式 -referer&#xff1a;上一次访问的地址 -user-agenet&#xff1a;客户端类型 -name&#x…

Python编程控制Android手机操作技巧示例代码

文章目录 你应该拥有的东西截图TemplateMatching 滑动打电话给某人手机录屏打开手机发送 Whatsapp 消息关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小游…

HttpRunner原来还能这么用,大开眼界!!!

hook机制 Httprunner 框架中的 hook 机制相当于unittest框架中的 setup , teardown 函数&#xff0c;用来进行测试用例执行之前的环境初始化以及测试用例执行完毕之后的环境清理操作。 httprunner 中的 hooks 机制可以用在测试用例层级也可以用在测试步骤层级&#xff0c;其关键…

【UE】绘制抛物线并投射物体

效果 步骤 1. 先新建父类为Actor的蓝图&#xff0c;这里命名为“BP_发射物” 打开“BP_发射物”&#xff0c;添加一个球形的静态网格体和一个发射物移动组件 2. 新建一个父类为角色的蓝图&#xff0c;这里命名为“BP_绘制抛物线” 打开“BP_绘制抛物线” 我们希望可以通过控制…

距离向量路由协议——IGRP和EIGRP

IGRP-内部网关路由协议 IGRP&#xff08;Interior Gateway Routing Protocol&#xff0c;内部网关路由协议&#xff09;是一种动态距离向量路由协议&#xff0c;它是Cisco公司在20世纪80年代中期设计的&#xff0c;是Cisco专用路由协议。目前在Cisco高版本的IOS已经对IGRP不提…

掌握 Node.js 事件循环,让代码更高效

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

socket 一个完整的不错的示例

从客户端向服务器端发送信息时&#xff0c;在服务器端有打印显示&#xff1b; 检测环境常用&#xff0c;备份一下 0&#xff0c;公共头文件代码 //config.h#include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #inc…

Android中的多进程

在Android中也可以像pc一样开启多进程&#xff0c;这在android的编程中通常是比较少见的&#xff0c;以为在一个app基本上都是单进程工作就已经足够了&#xff0c;有一些特殊的场景&#xff0c;我们需要用多进程来做一些额外的工作&#xff0c;比如下载工作等。 在Android的An…

UI上传组件异步上传更改为同步

实现异步方法 JavaScript 异步 实现异步的五种实现方法_js异步-CSDN博客 这两种比较经常用。 因为上传组件是异步上传的通过Async和await配合使用可以上传完照片视频后返回的地址在继续走下去&#xff0c;而不是图片视频地址还未获取时就上传后端了。

leetcode算法之字符串

目录 1.最长公共前缀2.最长回文子串3.二进制求和4.字符串相乘 1.最长公共前缀 最长公共前缀 class Solution { public:string longestCommonPrefix(vector<string>& strs) {//法一&#xff1a;两两比较string ret strs[0];for(int i1;i<strs.size();i){ret f…

[栈溢出+参数跟踪] [ZJCTF 2019]Login

题目来源 buuctf——[ZJCTF 2019]Login 本题主要考察参数溯源的能力。 参考链接 https://zhuanlan.zhihu.com/p/570607303 题目信息 64位&#xff0c;ubuntu16&#xff0c;开了金丝雀 C风格的代码&#xff0c;并且将admin登录信息写入代码中。 溢出点不在这里&#xff0c;但是…

井盖倾斜怎么办?智能井盖传感器监测方法

井盖倾斜是一个紧迫的问题&#xff0c;如果不及时处理可能会导致道路安全性下降&#xff0c;进而增加车辆和行人发生意外的风险。为应对这一问题现已开发出智能井盖传感器&#xff0c;它可以持续监测井盖的状态&#xff0c;一旦发现倾斜等异常情况会立即发出警报。 在智慧城市的…

揭秘:软件测试中Web请求的完整流程!

在软件开发的过程中&#xff0c;测试是一个至关重要的环节。而在现代互联网应用中&#xff0c;Web请求是很常见的一个测试需求。本文将介绍Web请求的完整测试流程&#xff0c;帮助读者更好地理解软件测试的关键步骤。 一、测试准备阶段 在进行Web请求测试之前&#xff0c;测试…

【C】语言 sizeof和strlen的对比

目录 sizeof和strlen的对比 1.1 sizeof 1.2 strlen strlen的模拟实现 strlen介绍 1.3 sizeof 和 strlen的对比 sizeof和strlen的对比 1.1 sizeof 在学习操作符的时候&#xff0c;我们学习了 sizeof &#xff0c; sizeof 计算变量所占内存内存空间⼤⼩的&#xff0c;…

我试图通过这篇文章告诉你,什么是神奇的泛化调用。

关于 RPC 调用&#xff0c;大家肯定都是比较熟悉的了&#xff0c;就是在微服务架构下解决系统间通信问题的一个玩意。 其中的典型代表之一就是 Dubbo 了&#xff1a; 在微服务架构下&#xff0c;我们针对某个 RPC 接口&#xff0c;我们一般有两个角色。 服务消费者 (Dubbo Con…

【前端首屏加载速度优化(0): 谷歌浏览器时间参数】

DOMContentLoaded 浏览器已经完全加载了 HTML&#xff0c;DOM树构建完成&#xff0c;但是像是 <img> 和样式表等外部资源可能并没有下载完毕。 Load DOM树构建完成后&#xff0c;继续加载 html/css 中的外部资源&#xff0c;加载完成之后&#xff0c;视为页面加载完成。…