Win7X64下,opencv安装折腾

先说环境:win7X64专业版、python3.6.4

pip安装了pillow,正常可使用

为了不影响原来的环境,新建了一个python虚拟环境,如下:

节选自https://zhuanlan.zhihu.com/p/216157886

在 python3.3 之前,只能通过 virtualenv 创建虚拟环境,首先需要安装 virtualenv

pip install virtualenv
安装完后,在当前目录下创建一个名为 myvenv 的虚拟环境:
virtualenv --no-site-packages myvenv
参数 --no-site-packages 的意思是创建虚拟环境时,不复制主环境中安装的第三方包,也就是创建一个 “干净的” 虚拟环境

virtualenv 还有很多参数,用于不同的使用场景,例如:

  • -p: 用于指定 Python 解析器,就是安装好的 Python 应用程序,默认为当前环境中的 Python
  • --no-pip:不需要安装 pip,默认为安装
  • --clear:如果创建虚拟环境的目录已经有了其他虚拟环境,清楚重建

 

venv 模块

Python3.3 之后,可以用模块 venv 代替 virtualenv 工具,好处是不用单独安装,3.3 及之后的版本,都可以通过安装好的 Python 来创建虚拟环

  • python -m venv myvenv

    可以在当前目录创建一个名为 myvenv 的虚拟环境

    venv 有些参数,不过相比 virtualenv 少了些,这里简单介绍几个:

    • --without-pip: 不需要安装 pip,默认为安装
    • --clear:如果创建虚拟环境的目录已经有了其他虚拟环境,清楚重建

    因为 venv 是依附于一个 Python 解析器创建的,所以不需要指定 Python 解释器版本

    激活

    虚拟环境创建好后,需要激活才能在当前命令行中使用,可以理解成将当前命令行环境中 PATH 变量的值替换掉

    通过 virtualenv 和 模块 venv 创建的虚拟环境,激活方式是一样的,即运行激活脚本

    • Windows 系统中,激活脚本路径是 <myvenv>\Scripts\activate.bat,如果是 powershell 命令行,脚本换成 Activate.ps1 , 注意将 <myvenv>换成你自己的虚拟环境目录
    • Linux 系统中,激活脚本路径是 <myvenv>/bin/activate,默认脚本没有执行权限,要么设置脚本为可执行,要么用 source 命令执行,例如

    $ source myvenv/bin/activate

    激活后,可以在命令行中看到虚拟环境标记,如上图

    打印 PATH,命令如下:

    Linux 下:

    echo $PATH

    Windows 下

    echo %PATH%

    可以看到创建的虚拟环境脚本目录被加载了最前面

    退出

    退出虚拟环境很简单,只需要执行 deactivate 命令就行,这个命令也在虚拟环境的脚本目录下,因为激活时,将脚本目录设置到 PATH 中了,所以可以直接使用

    退出虚拟环境相当于将 PATH 恢复成原来的

 
我的操作如下:
cd \tmp\python\qm
python -m venv env1
dir \tmp\python\qm\env1

\tmp\python\qm\env1 的目录

2023/01/01 13:01 <DIR> .
2023/01/01 13:01 <DIR> ..
2023/01/01 12:55 <DIR> Include
2023/01/01 12:56 <DIR> Lib
2023/01/01 13:01 61 pip-selfcheck.json
2023/01/01 12:55 80 pyvenv.cfg
2023/01/01 16:05 <DIR> Scripts
2 个文件 141 字节
在Scripts文件夹里,有一个activate.bat,运行后可激活环境,有一个deactivate.bat,运行后可退出环境。

pip install opencv-python的时候,各种报错

大概提示是需要Visual Studio 2019/2022,CMAKE编译过不去之类的

于是按网上的pip install scikit-build cmake,然后再次pip install  

总之都不管用。

最后的办法:

去官网:https://opencv.org,考虑到我的版本较老,选了一个4.2.0下载了,双击提示解压,原来是个自解压文件。

\opencv 的目录

2023/01/01  23:54    <DIR>          .
2023/01/01  23:54    <DIR>          ..
2023/01/01  23:52    <DIR>          build
2019/12/20  22:28             2,331 LICENSE.txt
2019/12/20  22:28            27,913 LICENSE_FFMPEG.txt
2019/12/20  22:28               686 README.md.txt
2023/01/01  23:52    <DIR>          sources
               3 个文件         30,930 字节

\opencv>cd build

\opencv\build>dir
\opencv\build 的目录

2023/01/01  23:52    <DIR>          .
2023/01/01  23:52    <DIR>          ..
2023/01/01  23:52    <DIR>          bin
2023/01/01  23:52    <DIR>          etc
2023/01/01  23:52    <DIR>          include
2023/01/01  23:52    <DIR>          java
2019/12/13  13:32             2,331 LICENSE
2019/12/20  22:00               433 OpenCVConfig-version.cmake
2019/12/20  22:00             6,509 OpenCVConfig.cmake
2023/01/01  23:52    <DIR>          python
2019/12/20  21:59               781 setup_vars_opencv4.cmd
2023/01/01  23:52    <DIR>          x64
               4 个文件         10,054 字节
运行setup_vars_opencv4.cmd后,再运行python,就可以import cv2了。
最后写一个批处理,把新建的虚拟环境和cv2结合起来。
 D:\tmp\python\qm 的目录

2023/01/02  00:13    <DIR>          .
2023/01/02  00:13    <DIR>          ..
2023/01/01  15:05             2,776 boat_a.png
2023/01/01  14:45                 0 prj1.py
2023/01/01  13:01    <DIR>          qmenv
2023/01/02  00:16               183 st_env1.bat
               3 个文件          2,959 字节
 
D:\tmp\python\qm>type st_env1.bat
@echo off
echo st_env1.bat,这个环境使用cv2和.\qmenv\下面安装的包
d:
cd \Green\opencv\build
call setup_vars_opencv4
cd \tmp\python\qm\qmenv\Scripts
call activate.bat
cd ..\..

切到qm目录下,直接st_env1.bat就可以进入有opencv的虚拟环境了。

 

posted @ 2023-01-02 23:10  路人几  阅读(275)  评论(0)    收藏  举报