先说环境: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的虚拟环境了。
标签:01,23,python,Win7X64,opencv,虚拟环境,折腾,2023 From: https://www.cnblogs.com/argent/p/17020825.html