☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython
一、引言
在CSDN的博文《统信UOS Linux下绕开github下载和编译OpenCV并构建C++应用编译环境的过程详解》老猿介绍了在统信UOS Linux下安装opencv库的详细过程,这个库安装完成后就可以进行opencv C++应用的编译和测试了。
与此同时,opencv也提供了python版本的安装库,老猿曾经在CSDN的博文《opencv-python图形图像处理入门基础知识》简单介绍了windows下安装过程以及opencv-python常用的开发API。
相比windows下的安装,统信UOS Linux下安装opencv-python库略有不同,本文就介绍一下统信UOS下安装opencv-python库的过程。
二、安装过程及遇到的问题
2.1、背景
在老猿机器的统信UOS下存在python2.7和python3.7两个版本,据说卸载python2.7会导致机器崩溃,老猿也没有时间去细究,因此只能保留2个版本共存的情况,但使用的却是Python3.7的版本,同时python3-pip是一个软件包,而不是一个可执行命令。为此安装的pip指令是pip3。要使用pip命令直接运行pip3。
由于国内镜像访问比国外Python仓库快,安装就使用了清华的镜像,版本老猿先准备安装4.3.0.38,这样可以复用《统信UOS Linux下绕开github下载和编译OpenCV并构建C++应用编译环境的过程详解》中介绍使用的安装库,但在尝试复用本地已经安装OpenCV库时发现没走通,试了一次之后不想继续耗费时间了,因此就直接安装了最新的opencv-python版本。
2.2、编写 一个简化的pip shell文件
由于需要使用清华库来安装,为了简化输入,单独编写了一个pip安装的shell放在root用户的主目录下,这样安装时无需输入install参数和镜像参数。
pip文件的内容如下:
#!/bin/bash
args="$@"
pipcmd="pip3 install $args -i https://pypi.tuna.tsinghua.edu.cn/simple"
echo "Excute command:"
echo "$pipcmd"
echo " "
eval $pipcmd
注意,这个shell文件支持可变参数,因此对于:
pip3 install --upgrade pip
pip3 install opencv-python==4.3.0.38
等形式的指令都可以通过该shell执行。
2.4、执行安装
本次安装的指令过程如下:
administrator@jwp:~/Desktop$ sudo -i
请输入密码:
验证成功
root@jwp:~# ./pip opencv-python
Excute command:
pip3 install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
......
root@jwp:~#
2.5、遇到的问题
首次执行上述安装执行指令时big不顺利,报错了,部分错误信息如下:
Complete output from command /usr/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-tx_7pg3m --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.tuna.tsinghua.edu.cn/simple -- setuptools wheel scikit-build cmake pip "numpy==1.11.3; python_version=='3.5'" "numpy==1.13.3; python_version=='3.6'" "numpy==1.14.5; python_version=='3.7'" "numpy==1.17.3; python_version>='3.8'":
Ignoring numpy: markers 'python_version == "3.5"' don't match your environment
Ignoring numpy: markers 'python_version == "3.6"' don't match your environment
Ignoring numpy: markers 'python_version >= "3.8"' don't match your environment
Looking in indexes: https://pypi.tuna.tsinghua.edu.cn/simple
......
Collecting cmake
Using cached https://pypi.tuna.tsinghua.edu.cn/packages/77/4a/78df9bdaf3d0ab1b50a78c0d6ffedf1cbc0152b5d8b462cb5f23b6fb4c04/cmake-3.28.1.tar.gz
Exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/pip/_internal/cli/base_command.py", line 143, in main
status = self.run(options, args)
File "/usr/lib/python3/dist-packages/pip/_internal/commands/install.py", line 338, in run
resolver.resolve(requirement_set)
......
File "/usr/share/python-wheels/pytoml-0.1.2-py2.py3-none-any.whl/pytoml/parser.py", line 370, in loads
toks.expect('=', 'expected_equals')
File "/usr/share/python-wheels/pytoml-0.1.2-py2.py3-none-any.whl/pytoml/parser.py", line 250, in expect
self.error(error_text)
File "/usr/share/python-wheels/pytoml-0.1.2-py2.py3-none-any.whl/pytoml/parser.py", line 253, in error
raise TomlError(message, self.pos[0][0], self.pos[0][1], self._filename)
pytoml.core.TomlError: /tmp/pip-install-anj_aj3i/cmake/pyproject.toml(91, 24): expected_equals
----------------------------------------
Command "/usr/bin/python3 -m pip install --ignore-installed --no-user --prefix /tmp/pip-build-env-ob2oztsb --no-warn-script-location --no-binary :none: --only-binary :none: -i https://pypi.tuna.tsinghua.edu.cn/simple -- setuptools wheel scikit-build cmake pip "numpy==1.11.3; python_version=='3.5'" "numpy==1.13.3; python_version=='3.6'" "numpy==1.14.5; python_version=='3.7'" "numpy==1.17.3; python_version>='3.8'"" failed with error code 2 in None
才开始以为是numpy或cmake与Python或opencv的版本不匹配,尝试了多个方法都未解决,后来才发现是由于统信uos下的pip3版本比较老,导致在安装时产生上述错误。
执行指令进行pip升级:
pip3 install --upgrade pip
升级成功后,重新执行opencv-python安装指令,版本成功安装。
当然如果你的Linux操作系统中没有安装pip3,则可以使用以下命令来安装pip3:
sudo apt-get install python3-pip
安装完成后,可以使用以下命令来验证pip3的安装:
pip3 --version
2.6、验证安装是否成功
可以通过执行如下指令来测试opencv-python是否安装成功:
root@jwp:~# python
Python 3.7.3 (default, Oct 13 2023, 10:47:37)
[GCC 8.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import cv2
>>>
三、小结
本文介绍了统信UOS Linux下安装OpenCV-Python库的过程以及安装过程遇到的问题,在UOS下通过升级pip3才能正常安装。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
更多关于统信操作系统及opencv的介绍的内容请参考专栏《国产信创之光》的其他文章。
关于老猿的付费专栏
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》
- 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。
前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。
对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。
如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。