Boost.python的源码编译安装(尝试解决Boost.Python.ArgumentError)

问题描述

在本人尝试用pycaffe运行一个程序(snntoolbox)时,出现了
Boost.Python.ArgumentError: Python argument types in Net.__init__(Net, unicode, int) did not match C++ signature:的报错,在翻过各大论坛的相关回答和官方网站的教程之后,主要意见有:1.传递参数类型与函数声明中不一致;2.Boost不应该由sudo apt install安装,而应该直接由源码根据自身的python进行编译(build against python version)。
根据本人的情况分析(pycaffe+snntoolbox运行),更有可能是由于第二个原因引起,因此尝试解决这个问题的话,自然要学习如何通过源码编译安装。(结果学会了从源码安装boost,但是没能够解决报错,猜想可能是因为:a.卸载不干净,b.caffe的Makefile里面的设置问题)
本人对于boost是个门外汉,文章应该有蛮多纰漏的,欢迎指正。

boost简要介绍

  • boost: Boost库是为C++语言标准库提供扩展的一些C++程序库的总称。
  • boost.python:它是boost库的一部分,随boost一起安装,用来实现C++和Python代码的交互。

libboost-dev的卸载

如果你之前已经用sudo apt install libboost-dev libboost-all-dev的方式安装了boost(比如你在Ubuntu16.04下按照CUDA官网推荐方式安装了caffe的话),建议先卸载。
卸载方式如下:

sudo apt remove libboost-dev libboost-all-dev

Boost.python的编译安装

  • 说明:因为caffe需要boost的支持,在卸载以后所有boost文件都需要通过安装(对于非boost.python来说,安装就是将头文件拷贝到PREFIX路径[默认为/usr/local]),不只boost.python(boost.python不是headers-only文件,需要单独build)

<

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值