Ubuntu 20.04 LTS boost-python安装教程

由于大作业的需求,博主最近在配置一个项目:https://github.com/weixk2015/DeepSFM
在按照环境的要求安装一堆依赖的时候,在一个包面前碰了壁:minieigen,使用以下命令尝试安装:

pip install minieigen
  1. 一开始会得到一个报错(没有该报错可跳转至2),大概就是
    #include  //当时没有截图,只凭印象,差不多这样
    
    这一行会报一个错,原因是没有安装libeigen3-dev这个包,只需要使用
    sudo apt install libeigen3-dev
    
    之后继续尝试使用
    pip install minieigen
    
    安装
  2. 此时还可能会得到另一个报错,控制台会得到很长的红色warning,不需要理会,只需要看error,显示缺少libboost_python-py36.so(控制台可能显示为lboost_python-py36,没有该报错可跳转至6)这个动态链接库,按照正常思路只需要
    pip install libboost-python-dev
    
    即可得到相关动态链接库,但此时出现了另一个问题,由于博主使用的conda虚拟环境python版本为python3.6.4,但是不知道为什么系统自动安装时生成的文件是libboost_python38.so,估计是自动按照最新的版本安装了,此时我们需要放弃使用pip这个自动化的工具,转而进行手动安装
    首先下载相关文件,这里省略,网上随便搜索都能搜到,这里博主使用的boost_1_67_0
    cd ./boost_1_67_0/
    ./bootstrap.sh --with-python=/home/musher/anaconda3/envs/python36-pytorch/bin/python3.6 --with-python-version=3.6 --with-python-root='/home/musher/anaconda3/envs/python36-pytorch/lib/python3.6' --prefix=/usr/local
    ./b2 cflags='-fPIC' cxxflags='-fPIC' --with-python include='/home/musher/anaconda3/envs/python36-pytorch/include/python3.6m'
    
    这里相关路径一定要换成自己的虚拟环境的路径!!!
    然后
    ./b2 install
    
  3. 这里还可能出现报错,最后如果显示xxx skipped, xxx ignored(大概这么个意思,没有该报错跳转到4),表示这里安装失败了,博主这里失败的原因是缺少python-dev这个包,只需要
    sudo apt install python-dev
    
    然后重复
    ./bootstrap.sh --with-python=/home/musher/anaconda3/envs/python36-pytorch/bin/python3.6 --with-python-version=3.6 --with-python-root='/home/musher/anaconda3/envs/python36-pytorch/lib/python3.6' --prefix=/usr/local
    ./b2 cflags='-fPIC' cxxflags='-fPIC' --with-python include='/home/musher/anaconda3/envs/python36-pytorch/include/python3.6m'
    ./b2 install
    
    就能安装成功了,会生成/usr/local/lib/libboost_python36.a
  4. boost需求的是libboost_python-py36.so,与我们安装生成的动态链接库名字不同,所以我们只需要使用一个软链接即可
    cd /usr/local/lib
    ln -s libboost_python36.so libboost_python-py36.so
    
    此时即可生成boost相关的动态链接库,文件名的问题也解决了
  5. 但此时使用
    pip install minieigen
    
    还可能提示找不到这个库,问题可能出现在系统找不到这个库,需要使用
    export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH
    
    让系统找到这个地方,当然该指令只能在当前终端生效,如果需要其长期生效,还需要将其添加到~/.bashrc 或 ~/.zshrc中(取决于你使用的终端)
    此时使用
    pip install minieigen
    
    即可安装成功
  6. 测试是否安装成功
    python
    import minieigen
    
    如果一切正常,则安装成功

让人不禁感叹,配置环境的过程简直折磨,以及conda虚拟环境有多好用

你可能感兴趣的:(ubuntu使用笔记,linux,python,anaconda,ubuntu)