安装python3.9 + numpy + Matplotlib + opencv-python

这次安装程序我从来没有那么痛苦过;

本机环境:centos6.6 原来默认python2.7 版本

需要安装:python3.9 + numpy + Matplotlib + opencv-python

1、我碰到的问题:

1、在服务上采用yum install gcc 等等都报错,反正就是yum命令安装都会保网络简介错误,无法打开各种端口;

2、Broken toolchain: cannot link a simple C++ program. note: A compiler with support for C++11 language features is required. (安装numpy时发生)

3、[modules/core/CMakeFiles/opencv_core.dir/mathfuncs_core.avx2.cpp.o] Error 1

Could not build wheels for opencv-python, which is required to install pyproject.toml-based projects(安装opencv-python时发生)

网上和按照openCV(OpenCV中文官方文档)操作也没有解决,反正按这些操作都是错的,非常想放弃,为何按照一个openCV 在centos 上如此的麻烦?

2、解决yum打开端口错误,我修改机器的DNS配置;

vi /etc/resolv.conf

options timeout:2 attempts:3 rotate single-request-reopen
; generated by /sbin/dhclient-script
#nameserver 172.31.109.33   【这个被我注释了】
nameserver 8.8.8.8  【这个是我新添加的的】
我不知到这个阿里云服务器为何配置了这个ip? 我很想揍死原来的维护人员。

但是还是报错,提示本机yum更新源有问题,原因是原来centos不再维护了

[base]
name=CentOS-6.6 - Base
baseurl=http://mirrors.aliyun.com/centos-vault/6.6/os/x86_64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
 
[updates]
name=CentOS-6.6 - Updates
baseurl=http://mirrors.aliyun.com/centos-vault/6.6/updates/x86_64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
 
[extras]
name=CentOS-6.6 - Extras
baseurl=http://mirrors.aliyun.com/centos-vault/6.6/extras/x86_64/
gpgcheck=1
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
 
[centosplus]
name=CentOS-6.6 - Plus
baseurl=http://mirrors.aliyun.com/centos-vault/6.6/centosplus/x86_64/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6
 
[contrib]
name=CentOS-6.6 - Contrib
baseurl=http://mirrors.aliyun.com/centos-vault/6.6/contrib/x86_64/
gpgcheck=1
enabled=0
gpgkey=http://mirrors.aliyun.com/centos-vault/RPM-GPG-KEY-CentOS-6

采用以上代码替换:CentOS-Base-Aliyun.repo 文件中的 内容

采用以下命令更新源缓存信息

yum clean all

yum makecache

于是采用源码安装

3、源码安装python3.9

1、下载去官网下载:Python 3.9.11 (Python Source Releases | Python.org)

tar -zxvf Python-3.9.11.tgz

./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl --enable-shared

执行以上文件会报错,提示语法错误/Python-3.9.11/Modules/frameobject.c,又开始奔溃了

 我检查了auxvec.h文件:直接将

/Python-3.9.11/Modules/frameobject.c,这个内容显然是win上的东西搞死人 修改成如下
#if MS_WINDOWS && defined(FAULTHANDLER_USE_ALT_STACK) && defined(HAVE_LINUX_AUXVEC_H)
include 
include 
#endif

auxvec这个东西是win上的东西,centos上是可以不需要的,于是我加入了 MS_WINDOWS  这个判断;

./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl --enable-shared
make && make install
#创建软连接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3

#设置环境变量
vim /etc/profile
重新载入环境变量
source ~/.bash_profile

python3.9 安装完成。终于可喝口咖啡了,已经过去了3个小时。

开始安装:numpy,但是提示gcc版本太低了,无法安装

gcc -v 提示本机的gcc 为4.7.7,查看了gcc版本,再gcc4.8开始才开始支持C++11,而numpy1.11开始就需要C++11支持了,否则你是无法安装的;

于是是试图安装一个最新的GCC版本,然后我又一次奔溃了;

4 、安装了gcc  gcc-8.4.0/,

这个过程也是崩溃的,历时非常的长,估计4个小时才安装完毕,编译非常的慢,几乎晕过去了。

这个也是采用源码安装

wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-8.4.0/gcc-8.4.0.tar.bz2
$ ./contrib/download_prerequisites
mkdir build
$ cd build
$ ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
$ make &&  make install
whice gcc 
gcc -v

重要安装上去了,可以开始安装numpy了,但是gcc 没有问题了。

但是在安装numpy时选哟安装一个cmake库,这个库要求为 cmake-3.1.3.tar.gz  于是安装这个cmake-3.1.3这个编译库,但是这个库要求 gcc 小于4.9版本;

我奔溃了,原来gcc 需要降级处理了,开始要骂娘了。

5、将gcc从8.4降级到4.8

wget ftp://gcc.gnu.org/pub/gcc/releases/gcc-4.8.0/gcc-4.8.0.tar.bz2
$ ./contrib/download_prerequisites
mkdir build
$ cd build
$ ../configure --enable-checking=release --enable-languages=c,c++ --disable-multilib
$ make 

make出错,原因是你不能采用gcc8.4去编译低级版本的源码,需要修改3个文件

请参考这个文件:CentOS 7.6对gcc版本降级_xzz3493的博客-CSDN博客_centos gcc降级

修改,感谢这个作者,没有他我都不知道如何处理.

gcc降级完成,顺利安装了gcc4.8 ,到了 /usr/local/gcc-4.8.0/ 这个目录, 我们开始备份原来的gcc-8.4(这个可是我非常不容易才安装上的,不能直接覆盖的),采用软链方式

mv /usr/local/bin/gcc /ljw/gccback/
ln -s /usr/local/gcc-4.8.0./bin/gcc /usr/local/bin/gcc  

 顺利完成cmake-3.1.3 ,完成numpy源码安装

./pip3 install --upgrade setuptools
./pip3 install Matplotlib

完成Matplotlib 安装

./pip3 install --upgrade pip setuptools wheel
./pip3 install  opencv-python

(from opencv-python) (1.19.3)

./pip3 install opencv-python==3.4.0.14

搞了两天终于完成了

你可能感兴趣的:(软件开发,python,opencv)