python模型+OPencv用C++编译记录

零、基本知识
(1)所在的环境:在百度云服务器上新安装的centos7.4系统
(2)常用代码:

tar zxvf filename.tar  #tar解包
tar czvf filename.tar dirname #tar打包

一、安装cmake
(1)下载网址:https://cmake.org/files/v3.10/cmake-3.10.3-Linux-x86_64.sh,复制 cmake-3.10.3-Linux-x86_64.sh到/home/backup下.
(2)sudo sh cmake-3.10.3-Linux-x86_64.sh --prefix=/usr/local --exclude-subdir
(3)检查版本

使用cmake -version查看cmake版本
使用ccmake -version查看ccmake版本

(4)备注,卸载cmake(未成功,需谨慎)
找到make install之后产生的这个文件install_manifest.txt
里面有安装的所有东西的路径,删除它们即可。
参考命令:cat install_manifest.txt | sudo xargs rm
验证是否卸载了的命令:sudo yum remove cmake
卸载原有cmake : yum -y remove cmake
搜索: find / -name cmake (将搜到的全部删掉)
二、安装python2的相关插件
目前python2中没有预装pip命令,所以还需要自己装pip命令,方便安装python用到的各种包。
(1)首先检查有没有安装python-pip,可直接执行命令 yum install python-pip
(2)如果上一步报错,需要先执行 yum -y install epel-release;成功epel后再执行 yum install python-pip 即可正常安装pip
(3)安装完python-pip 后最后再执行下升级命令: pip2 install --upgrade pip
(4)验证下pip2是否可用,可执行命令 pip2 install requests 安装requests包
三、安装anaconda
(1)将Anaconda3-5.2.0-Linux-x86_64.sh放入/home/backup中。运行 sh Anaconda3-5.2.0-Linux-x86_64.sh,安装位置选择/opt/install/anaconda3.
(2)Do you wish the installer to prepend the Anaconda3 install location to PATH in your /root/.bashrc ?[yes|no]。选yes.没选的话,后面自己添加。
(3)Do you wish to proceed with the installation of Microsoft VSCode? [yes|no]。一般用不到,选”no”
(4)source /root/.bashrc
(5)验证是否可用: python。退出python程序,需输入:exit()
四、源码编译安装opencv
(1)yum update
(2)gcc 升级

yum -y install centos-release-scl
yum -y install devtoolset-6-gcc devtoolset-6-gcc-c++ devtoolset-6-binutils
scl enable devtoolset-6 bash

需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。如果要长期使用gcc 6.3的话:

echo "source /opt/rh/devtoolset-6/enable" >>/etc/profile

(3)essential安装

yum install kernel-devel #安装gcc-essential
yum install gcc-gfortran #安装gfortran
安装完后,可以用 gcc -v 、g++ -v 和 fortran -v 查看版本。

(4)gtk2.0安装

yum install git #安装git
yum install libgnomeui-devel #安装必要文件包(gtk 图形化界面库)
yum install gtk2 gtk2-devel gtk2-devel-docs #安装必要组件
yum install gnome-devel gnome-devel-docs #安装可选组件

(5)pkg-config安装
一般电脑自带就行,查看版本:pkg-config --version
(6)ffmpeg组件安装. 多用于视频处理,建议安装
安装epel扩展源 :yum -y install epel-release
安装扩展源

yum localinstall --nogpgcheck https://download1.rpmfusion.org/free/el/rpmfusion-free-release-7.noarch.rpm https://download1.rpmfusion.org/nonfree/el/rpmfusion-nonfree-release-7.noarch.rpm
rpm --import http://li.nux.ro/download/nux/RPM-GPG-KEY-nux.ro
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-1.el7.nux.noarch.rpm
yum -y install ffmpeg ffmpeg-devel  #安装ffmpeg 依赖

测试ffmpeg有没有安装成功: ffmpeg -version
(7)安装opencv其他依赖项:

yum install python-devel numpy
yum install libdc1394-devel
yum install libv4l-devel
yum install gstreamer-plugins-base-devel
yum -y install ant(安装ant,流泪推荐)

(8)编译opencv
把opencv-3.4.5.zip复制到/root下面。然后解压并进入:unzip opencv-3.4.5.zip

cd opencv-3.4.5
mkdir build
cd build 
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local/opencv3 ..

注意查看编译信息,这里安装的python2版本。

-- Found PythonInterp: /usr/bin/python2.7 (found suitable version "2.7.5", minimum required is "2.7") 
-- Found PythonLibs: /lib64/libpython2.7.so (found suitable exact version "2.7.5") 
-- Found PythonInterp: /root/anaconda3/bin/python3 (found suitable version "3.6.5", minimum required is "3.2") 
-- Could NOT find PythonLibs (missing: PYTHON_LIBRARIES PYTHON_INCLUDE_DIRS) (Required is exact version "3.6.5")
-- Looking for ccache - not found

上面如果CMAKE_INSTALL_PREFIX安装目录不指定,默认是安装到/usr/local下和系统放一块(建议默认,非默认不负责),完成之后可以查看支持的相关扩展,没问题执行编译并安装:

make
make install

(9)opencv配置与加载动态库
(9.1)路径添加和加载:

进入目标文件: cd /etc/ld.so.conf.d
添加opencv.conf文件: touch opencv.conf
添加opencv编译产生的lib库路径到opencv.conf中,如下命令:
/bin/bash -c 'echo "/usr/local/opencv3/lib64" > /etc/ld.so.conf.d/opencv.conf'
加载: sudo ldconfig

注意:在其他linux系统中可能有区别,但是意在让系统知道opencv lib库的路径,能够完成动态加载。
(9.2)添加PATH

输入命令vi /etc/bashrc 
在文件末尾另起行加入 export PKG_CONFIG_PATH=/usr/lib64/pkgconfig:/$PKG_CONFIG_PATH
保存退出 
输入source /etc/bashrc使配置生效 
输入updatedb更新数据库

(9.3)pkg-config配置
默认的pkg搜索链接路径/usr/lib64/pkgconfig。需要将opencv.pc拷贝到pkg的默认路径下。

cp /usr/local/opencv3/lib64/pkgconfig/opencv.pc /usr/lib64/pkgconfig

五、安装 pytorch和libtorch

conda install pytorch-cpu==1.0.0 torchvision-cpu==0.2.1 cpuonly -c pytorch #由于其中自带了python-3.6.6版本。所以我怀疑以前装的anaconda没有什么作用。
https://download.pytorch.org/libtorch/cpu/libtorch-win-shared-with-deps-1.3.1.zip #放在/opt/install

六、其他准备

yum install gperftools-libs #这个没必要

七、运行实例
(7.1)运行命令

cmake -DCMAKE_PREFIX_PATH=/opt/install/libtorch ..   #成品见 路径 /home/project/example04/example-app08/build

八、查看python2的配置,准备编译
(8.1)系统配置

locate python2.7-config      #首先查找python2.7-config的位置
/usr/bin/python2.7-config --cflags      #pythonX.Y-config --cflags will give you the recommended flags when compiling
/usr/bin/python2.7-config --ldflags    #pythonX.Y-config --ldflags will give you the recommended flags when linking

(8.2)CMakeLists内容

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)
project(custom_ops)

include_directories(/usr/include/python2.7)

link_directories(/usr/lib64/python2.7/config)

add_executable(example-app example-app.cpp)
target_link_libraries(example-app python2.7)
set_property(TARGET example-app PROPERTY CXX_STANDARD 11)

(8.3)example-app.cpp中记得加上初始化

PyRun_SimpleString("import sys");  
PyRun_SimpleString("print '---import sys---'");   
PyRun_SimpleString("sys.path.append('../')"); 

(8.4)在build文件夹下的命令:

./example-app multiply multiply 3 3

(8.5)pip2安装pillow/numpy

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值