openrave0.9安装遇到依赖问题及解决流程

2023-05-16

问题

cmake 时输出下面的失败信息,虽然最后可以make install(其实就是拷贝了库文件)安装上,但是由于过程中有些步骤失败,导致执行时缺少一些库文件,无法执行。

– Performing Test HAVE_ALL_PYTHON_HEADERS
– Performing Test HAVE_ALL_PYTHON_HEADERS - Failed
– failed to use boost python libraries, check if python-numpy is installed.

执行时提示:

Traceback (most recent call last):
File
“/home/aburchardt/x86_64/opt/openrave/lib/python2.7/dist-packages/openravepy/openravepy/ikfast.py”,
line 6331, in
import openravepy
File
“/home/aburchardt/x86_64/opt/openrave/lib/python2.7/dist-packages/openravepy/init.py”,
line 35, in
openravepy_currentversion = loadlatest()
File
“/home/aburchardt/x86_64/opt/openrave/lib/python2.7/dist-packages/openravepy/init.py”,
line 16, in loadlatest
return loadversion(‘_openravepy‘)
File
“/home/aburchardt/x86_64/opt/openrave/lib/python2.7/dist-packages/openravepy/init.py”,
line 19, in _loadversion
mainpackage = import(“openravepy”, globals(), locals(),
[targetname])
File
“/home/aburchardt/x86_64/opt/openrave/lib/python2.7/dist-packages/openravepy/openravepy/init.py”,
line 29, in
from openravepy_int import *
ImportError: No module named openravepy_int

遇到这种问题:

  • 首先最先想到的看网上有没有人遇到同样的问题,可能会有,但是每个人的系统所安装的包、版本以及系统本身的差异性(有了docker镜像这问题貌似有了希望了),很难碰到一模一样的问题,一样的解决方法(可能这是linux初使用者最头大的问题),因此就需要分析问题的所在了。

  • 一般情况下,软件安装都是包的依赖问题,第一,所依赖的包要安装了;第二,所安装的依赖包,路径要能找到,不然和没装一样。关于路径就有环境变量,和路径文件几种指定方式。一般的软件都有自己的环境变量;

  • 对于python来说:
    1)在终端自己输入,python ; import sys; sys.path 自己查看所有的路径
    2)默认路径搜索方式为,当前目录–>PYTHONPATH环境变量中的路径—>系统路径,.pth中的路径;

下面列出自己解决问题的过程:

  1. 在软件执行时提示openravepy_int找不到,locate openravepy_int文件,发现在/usr/lib下面确实没有该模块,推测是在安装过程中出现了问题,所以在cmake .. 输出的信息中发现:
    openrave0.9安装遇到依赖问题解决流程

    这里写图片描述

  2. 因此,问题就在这个地方,现在找到在哪个CMakefile.txt中输出了该信息:

    这里写图片描述

  3. 发现是在./python/binding 下的CMakeLists.txt中输出该失败信息,打开该文件:

    这里写图片描述

  4. 发现是执行check_cxx_source_runs,测试头文件包含和库文件连接时失败了(有可能文件本身不存在,或者是路径没有指定),所以输出包含路径:

    这里写图片描述

    输出具体路径信息如下:

    这里写图片描述

  5. 然后locate发现头文件都是存在的,而且include路径也是正确的,估计包路径不对链接出错,然后每次删除一个include头文件测试,注意这里cmake之前一定要rm CMakeCache.txt,不然仍然是上一次的结果,切记切记。发现在包含boost时,编译运行出现错误,这里面没有出错信息,因此自己创建个test.cpp测试:

    这里写图片描述

    出现以下错误信息:

    这里写图片描述

  6. 经过网上查询,对比前面的cmake输出调试信息,发现是缺少了libboost_system.so库文件的指定,在test.cpp编译时添加-I boost_system发现成功,添加到CMakeFiles.txt文件中如下:

    这里写图片描述

  7. 问题完美解决,就是个库文件没有指定的错误。

    这里写图片描述

综上,linux下面的问题可能每个人都会不一样,软件安装过程中无非就是包的依赖问题,依赖可能和版本有关、路径有关;只要耐心进行分析,解决具体碰到的问题,就能迎刃而解。。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

openrave0.9安装遇到依赖问题及解决流程 的相关文章

随机推荐

  • FreeRTOS的同步机制---事件event

    目录 1 event的基本概念 2 event的特点 3 event的运行机制 4 event与semphore的区别 5 event的应用场景 6 demo分析 1 event的基本概念 事件event是用于任务间通信的机制 xff0c
  • FreeRTOS同步机制--互斥信号量

    1 为什么引入互斥量 普通的信号量在任务之间同步时 xff0c 会出现优先级翻转问题 xff0c 如下 xff1a 执行流程如下 xff1a 1 xff09 此时 xff0c 任务就绪列表中 xff0c 低优先级任务L的优先级最高 xff0
  • 为何某些公司不允许使用 C++ STL

    作者 xff1a 陈甫鸼 链接 xff1a https www zhihu com question 20201972 answer 23454845 来源 xff1a 知乎 著作权归作者所有 xff0c 转载请联系作者获得授权 最初开始禁
  • 如何发明新算法(一)

    如何发明新算法 xff08 一 xff09 算法一直是计算机科学的核心 xff0c 算法改变世界 xff0c 算法创造未来 xff01 这篇文章我主要从复杂化 简单化两个方面谈谈怎么样发明一个新的算法 新算法在时间复杂度 xff0c 空间复
  • python进行http登录

    摘要 xff1a 有时需要用python做一些自动化页面请求 xff0c 但请求又需要登录权限 xff0c 好比如抢票 在有账号密码的情况下 xff0c 可以用request Session进行带session的http请求 xff0c 这
  • Ubuntu14.04 for ROS indigo的安装(电脑配置)

    前言 由于个人需要 xff0c 将笔记本电脑重新装了系统 首先用空白U盘进行系统刻盘 xff0c 然后电脑所有数据备份 xff0c 最后重新安装 装入的系统是exbot 机器人提供的Ubuntu14 04 for ros indigo xf
  • Django自带的加密算法及加密模块

    Django 内置的User类提供了用户密码的存储 验证 修改等功能 xff0c 可以很方便你的给用户提供密码服务 默认的Ddjango使用pbkdf2 sha256方式来存储和管理用的密码 xff0c 当然是可以自定义的 Django 通
  • 如何在Python中使用“ with open”打开多个文件?

    我想一次更改几个文件 xff0c 前提是我可以写入所有文件 我想知道我是否可以将多个打开调用与with语句结合with xff1a try with open 39 a 39 39 w 39 as a and open 39 b 39 39
  • 工业控制领域的期刊

    我们都知道目前做控制的大体分两大类人 xff0c 一类是做纯控制理论的 xff0c 主要是跟数学打交道 xff1b 另一类是做控制理论在各个行业的应用的 xff0c 其中包括电力系统 xff0c 机器人 xff0c 智能交通 xff0c 航
  • VNC 灰屏

    用vnc连接服务器的时候 xff0c 出现了灰屏 xff0c xff08 在xshell可以正常运行 xff09 上面会显示三个checkbox xff1a Accept clipboard from viewers Send clipbo
  • Ubuntu卸载python3.6

    注意 xff1a 这里说一下 xff0c 系统自带的python3 6可别乱删 xff0c 这个是我自己下载的python3 6 若你们有想卸载系统自带的python3 6 xff0c 可千万别去卸载 xff01 一般会开机都开不起 xff
  • 深度学习之BP神经网络

    深度学习之BP神经网络 BP xff08 Back Propagation xff09 网络是1986年由Rumelhart和McCelland为首的科学家小组提出 xff0c 是一种按误差逆传播算法训练的多层前馈网络 它的学习规则是使用最
  • 【ROS】源码分析-消息订阅与发布

    说明 本文通过NodeHandle subscribe和Publication publish 源码作为入口 xff0c 来分析PubNode SubNode之间是网络连接是如何建立的 xff0c 消息是如何发布的 xff0c topic队
  • Opencv-cvtColor

    cvtColor不是cv的成员 头文件的问题 include lt opencv2 opencv hpp gt 这个就可以
  • java听课笔记——9.25

    记录今天所学的东西 xff1a 1 Random 用于随机生成一个值 xff0c 可以有限定范围 xff0c 没有尝试过不设限制的随机 用法如下 xff1a Random random 61 new Random int temp 61 r
  • java听课笔记——10.09

    1 局部变量和全局变量 xff1a 2 匿名内部类比较和外部比较 匿名内部类的比较 xff0c 即在需要进行比较的类名后加上implements comparator lt 类名 gt 然后 xff0c 使用sort xff0c 对于sor
  • java听课笔记——10.10

    1 String与常量池 xff1a 常量池是java中的一个存储常量的存储器 xff0c 栈是一个临时的存储器 xff0c 在递归的时候比较明显 xff0c 函数的运行压缩在栈里 String str3 61 new String 34
  • Java听课笔记——10.30

    感觉今天没讲什么东西唉 一开始 xff0c 解释了一下ArrayList里的每个元素如果不进行类型约束的话 自然赋值为Object类 xff0c 而且是兼收并蓄的 同时讲了使用迭代器对ArrayList数组进行遍历 xff0c 直接上代码
  • 如何在Python中声明一个数组?

    如何在Python中声明数组 xff1f 我在文档中找不到任何对数组的引用 1楼 这个怎么样 gt gt gt a 61 range 12 gt gt gt a 0 1 2 3 4 5 6 7 8 9 10 11 gt gt gt a 7
  • openrave0.9安装遇到依赖问题及解决流程

    问题 cmake 时输出下面的失败信息 xff0c 虽然最后可以make install xff08 其实就是拷贝了库文件 xff09 安装上 xff0c 但是由于过程中有些步骤失败 xff0c 导致执行时缺少一些库文件 xff0c 无法执