栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

centos安装python及导入cv2出现的问题及踩坑记录

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

centos安装python及导入cv2出现的问题及踩坑记录

想在容器中使用python 但python的官方镜像太过于精简 里面不管是yum还是vi 还是vim都没有安装 使用起来比较不方便 于是决定在centos基础镜像中安装python环境 具体步骤和遇到的问题如下

下载centos官方镜像

[root lingg ~]# docker pull centos

运行centos镜像

[root lingg ~]# docker run -it 镜像ID /bin/bash

安装python环境

yum -y install python3

查看python版本

[root 3e3dc19e8e08 /]# python3
Python 3.6.8 (default, Mar 19 2021, 05:13:41) 
[GCC 8.4.1 20200928 (Red Hat 8.4.1-1)] on linux
Type help , copyright , credits or license for more information.

导入包cv2失败

[root 3e3dc19e8e08 /]# python3
Python 3.6.8 (default, Mar 19 2021, 05:13:41) 
[GCC 8.4.1 20200928 (Red Hat 8.4.1-1)] on linux
Type help , copyright , credits or license for more information.
 import cv2
Traceback (most recent call last):
 File stdin , line 1, in module 
ModuleNotFoundError: No module named cv2 

安装opencv-python

[root 3e3dc19e8e08 /]# pip3 install opencv-python 
WARNING: Running pip install with root privileges is generally not a good idea. Try pip3 install --user instead.
Collecting opencv-python
 Retrying (Retry(total 4, connect None, read None, redirect None, status None)) after connection broken by ConnectTimeoutError( pip._vendor.urllib3.connection.VerifiedHTTPSConnection object at 0x7fcaf7138f28 , Connection to pypi.python.org timed out. (connect timeout 15) ) : /simple/opencv-python/

解决

临时性解决
可以在使用pip的时候在后面加上-i参数 指定pip源 
eg: pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
永久性解决
mkdir ~/.pip
vim ~/.pip/pip.conf

提示vim :command not found的话换成vi ~/.pip/pip.conf

然后在pip.conf中输入

[global]
index-url https://pypi.tuna.tsinghua.edu.cn/simple

报错

Collecting opencv-python
 Downloading http://pypi.doubanio.com/packages/01/9b/be08992293fb21faf35ab98e06924d7407fcfca89d89c5de65442631556a/opencv-python-4.5.3.56.tar.gz (89.2MB)
 100% |████████████████████████████████| 89.2MB 13.9MB/s 
 Complete output from command python setup.py egg_info:
 Traceback (most recent call last):
 File string , line 1, in module 
 File /tmp/pip-build-s_bpkw_2/opencv-python/setup.py , line 10, in module 
 import skbuild
 ModuleNotFoundError: No module named skbuild 

解决

pip3 install scikit-build

报错

Building wheels for collected packages: opencv-python
 Running setup.py bdist_wheel for opencv-python ... error
 Complete output from command /usr/bin/python3.6 -u -c import setuptools, tokenize;__file__ /tmp/pip-build-nnxlnrca/opencv-python/setup.py f getattr(tokenize, open , open)(__file__);code f.read().replace( rn , n f.close();exec(compile(code, __file__, exec )) bdist_wheel -d /tmp/tmp2i6xp72gpip-wheel- --python-tag cp36:
 Traceback (most recent call last):
 File /usr/local/lib/python3.6/site-packages/skbuild/setuptools_wrap.py , line 564, in setup
 cmkr cmaker.CMaker(cmake_executable)
 File /usr/local/lib/python3.6/site-packages/skbuild/cmaker.py , line 95, in __init__
 self.cmake_version get_cmake_version(self.cmake_executable)
 File /usr/local/lib/python3.6/site-packages/skbuild/cmaker.py , line 82, in get_cmake_version
 Problem with the CMake installation, aborting build. CMake executable is %s % cmake_executable)
 Problem with the CMake installation, aborting build. CMake executable is cmake
 ----------------------------------------
 Failed building wheel for opencv-python
 Running setup.py clean for opencv-python
Failed to build opencv-python
Installing collected packages: numpy, opencv-python
 Running setup.py install for opencv-python ... error
 Complete output from command /usr/bin/python3.6 -u -c import setuptools, tokenize;__file__ /tmp/pip-build-nnxlnrca/opencv-python/setup.py f getattr(tokenize, open , open)(__file__);code f.read().replace( rn , n f.close();exec(compile(code, __file__, exec )) install --record /tmp/pip-tuz2u8xk-record/install-record.txt --single-version-externally-managed --compile:
 Traceback (most recent call last):
 File /usr/local/lib/python3.6/site-packages/skbuild/setuptools_wrap.py , line 564, in setup
 cmkr cmaker.CMaker(cmake_executable)
 File /usr/local/lib/python3.6/site-packages/skbuild/cmaker.py , line 95, in __init__
 self.cmake_version get_cmake_version(self.cmake_executable)
 File /usr/local/lib/python3.6/site-packages/skbuild/cmaker.py , line 82, in get_cmake_version
 Problem with the CMake installation, aborting build. CMake executable is %s % cmake_executable)
 Problem with the CMake installation, aborting build. CMake executable is cmake
 ----------------------------------------
Command /usr/bin/python3.6 -u -c import setuptools, tokenize;__file__ /tmp/pip-build-nnxlnrca/opencv-python/setup.py ;f getattr(tokenize, open , open)(__file__);code f.read().replace( rn , n );f.close();exec(compile(code, __file__, exec )) install --record /tmp/pip-tuz2u8xk-record/install-record.txt --single-version-externally-managed --compile failed with error code 1 in /tmp/pip-build-nnxlnrca/opencv-python/

解决 升级pip

pip3 install --upgrade pip

报错

[root 3e3dc19e8e08 /]# python3
Python 3.6.8 (default, Mar 19 2021, 05:13:41) 
[GCC 8.4.1 20200928 (Red Hat 8.4.1-1)] on linux
Type help , copyright , credits or license for more information.
 import cv2
Traceback (most recent call last):
 File stdin , line 1, in module 
 File /usr/local/lib64/python3.6/site-packages/cv2/__init__.py , line 5, in module 
 from .cv2 import *
importError: libGL.so.1: cannot open shared object file: No such file or directory

解决

pip3 uninstall opencv-python 
pip3 install opencv-python-headless

同时按住Ctrl p q退出容器 保证容器不关闭。

然后执行docker ps命令查看当前运行中的容器

ConTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
3e3dc19e8e08 5d0da3dc9764 /bin/bash 29 minutes ago Up 29 minutes 

将配置好环境的docker commit成一个新的镜像

docker commit 3e3dc19e8e08 lingg/centos:3.6.8

执行docker images命令查看刚刚commit的镜像

REPOSITORY TAG IMAGE ID CREATED SIZE
lingg/centos 3.6.8 898e55b46a3d 27 seconds ago 639MB

向/root/centos-py/目录下拷贝两张照片

[root lingg ~]# cp images/275cd4eb-8825-49ad-b2fa-44d9aa67c0c6.png images/67f7b6b4-5324-4e2d-935f-7d04b6d8a85a.png ./centos-py/

启动新镜像 将/root/centos-py/目录挂载到镜像里面的/usr/lcoal/src目录下

[root lingg ~]# docker run -it -v /root/centos-py/:/usr/local/src --name python -p 10000:8080 898e55b46a /bin/bash

查看照片shape属性

[root c3dadddc745e src]# python3 
Python 3.6.8 (default, Mar 19 2021, 05:13:41) 
[GCC 8.4.1 20200928 (Red Hat 8.4.1-1)] on linux
Type help , copyright , credits or license for more information.
 import cv2
 image cv2.imread( /usr/local/src/275cd4eb-8825-49ad-b2fa-44d9aa67c0c6.png )
 print(image.shape)
(80, 320, 3)

成功

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267303.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号