如何在基于python3的conda虚拟环境中从头编译PyKDL

1、问题描述

PyKDL在装ROS的时候貌似也一起装上了,因此其路径默认在python2的环境中。由于各种需求,若要在python3的环境中运行PyKDL,需要重新编译,以下将以conda的python3.6环境为例。

2、源码下载

PyKDL下载地址,先git clone,就放到/home里面好了。源码也有安装指导,可以参考一下。

3、编译(参考博文)

C语言文件的编译步骤

进入 /orocos_kinematics_dynamics/orocos_kdl,输入如下命令:

mkdir build
cd build
cmake ../
make
sudo make install

python文件的编译步骤(先完成C语言文件的编译,然后才是python,两者不是平行的,而是先后的)

进入 /orocos_kinematics_dynamics/python_orocos_kdl,输入命令:

mkdir build
cd build
cmake ../ -DPYTHON_EXECUTABLE:FILEPATH=/home/wu/anaconda3/envs/mj/bin/python3.6

具体路径请按自己conda环境下的python路径修改,继续输入下列命令:

make
sudo make install

cmake那一步可能会报这样的错:

解决方法:在/orocos_kinematics_dynamics/python_orocos_kdl下,打开终端,输入命令:

git submodule update --init

这样会重新安装编译pybind11,问题解决。

 

ok,编译工作到此为止

4、copy PyKDL.so文件

编译完成后,copy ~/orocos_kinematics_dynamics/python_orocos_kdl/build/devel/lib/python3/dist-packages/PyKDL.so 到你的conda虚拟环境site-packages文件夹中,

我这边的路径是~/anaconda3/envs/mj/lib/python3.6/site-packages

5、添加路径到你的.bashrc文件中

打开你的.bashrc文件,即gedit ~/.bashrc,添加路径,我这边是这样:

export PYTHONPATH="/home/wu/anaconda3/envs/mj/lib/python3.6/site-packages:$PYTHONPATH"

具体路径请修改

ok,顺利做到这一步,就可以在conda虚拟环境python3下运行PyKDL了!

6、简单解释一下第5步

如果不执行第5步,在我们import PyKDL时,还是会报错的,因为此时指向的还是python2下PyKDL,但只要添加好对应路径,就会优先指向我们编译时用到的虚拟环境,进而成功运行。

如果运行其他程序报错,可以考虑注释掉第5步中的路径。

官方安装教程

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值