—— Anaconda 兼容多版本 Python 环境
Anaconda
, conda
, Python
, OpenCV
经常会出现不同的程序需要不同版本的 Python 环境,比如:很多以前开发的程序需要运行在 Python 2 的环境中,而现在开发的程序越来越多的采用 Python 3。因此,需要管理不同版本的Python。下面介绍利用 Anaconda 来管理不同的 Python 版本。
1. Python 3 的安装
假设已经安装了 Python 2.7 ,在此基础上,安装 Python 3,在 Anaconda Prompt 中输入下列语句之一:
conda create -n python34 python=3.4 anaconda
conda create --name python34 python=3.4
创建包含某些工具包的环境
conda create --name <your_env_name> numpy scipy
创建指定 Python 版本下,包含某些包的环境
conda create --name <your_env_name> python=3.4 numpy scipy
也可以通过 Anaconda 的图形界面对 Python 环境进行安装
和删除
。一般,图形界面为 Python 环境自动安装的工具包较少。
2. OpenCV 的安装
在安装了 Python 2.7 的基础上,又利用 Anaconda 安装了 Python 3.4。下面介绍如何在后安装的 Python 3 环境中,进一步安装 OpenCV 工具包。 这里计划利用 pip 安装 OpenCV 3.4。
避免 Python 2.7 + OpenCV 3.1 出现的错误:
OpenCV Error: Assertion failed (The data should normally be NULL!) in NumpyAllocator::allocate, file ......modulespythonsrc2cv2.cpp, line 163
Traceback (most recent call last):
File "E:/Project/test_FLANN/test1.py", line 36, in <module>
matches = flann.knnMatch(des1, des2, k=2)
cv2.error: ......modulespythonsrc2cv2.cpp:163: error: (-215) The data should normally be NULL! in function NumpyAllocator::allocate
通过网址https://www.lfd.uci.edu/~gohlke/pythonlibs/
查找发现 Python 3.4 没有对应的 OpenCV 3.4 工具包。于是,利用 conda删除
Python 3.4,再安装
Python 3.6
conda remove <your_env_name> --all
conda remove python34 --all
conda create -n py36 python=3.6 anaconda
从https://www.lfd.uci.edu/~gohlke/pythonlibs/
下载opencv_python‑3.4.1+contrib‑cp36‑cp36m‑win_amd64.whl
注意:
python‑3.4.1‑cp36‑cp36m‑win_amd64.whl 不含 xfeatures2d,会出现错误 AttributeError: module 'cv2' has no attribute 'xfeatures2d'
conda 的包管理功能是对 pip 的一种补充,如果当前已经激活了 Python 环境,那么就可以在当前环境开始安装第三方包。 这里需要在 Python 3.6 环境中安装 OpenCV 3.4 ,所以要先激活 py36:
conda activate py36
pip install opencv_python‑3.4.1+contrib‑cp36‑cp36m‑win_amd64.whl
可能还需要更新部分工具包,如:numpy
;安装其他的工具包,如:matplotlib
# 更新 numpy
conda update numpy
# 安装 matplotlib
conda install matplotlib
# 删除 matplotlib
conda remove matplotlib
# 查看已安装的工具包
conda list
非当前活跃环境下的工具包管理
# 列举非当前活跃环境中的所有工具包
conda list -n <your_env_name>
# 为指定环境安装工具包
conda install -n <env_name> <package_name>
更多命令,可查看帮助conda --help
或者conda -h
。
主要的参考资料:
[1] https://www. cnblogs.com/linkxu1989/ p/6691881.html
[2] https:// blog.csdn.net/menc15/ar ticle/details/71477949/