系统上还有另外两个Python版本:2.7和-在不同的环境中- 3.7,包括已安装的Opencv。
由于某些原因,我需要另一个python版本(3.8)。因此,我在一个单独的环境中安装了python 3.8,并在激活此环境后,在此环境中安装了Opencv:
我打开了一个miniforge 3 promt(未安装在分区c:\上),将其更改为分区d:\上的miniforge 3路径,然后输入:
conda create -n Python38 python=3.8 NumPy xarray netCDF4 holoviews hvplot bokeh pandas matplotlib IPython ipywidgets datashader
之后,我在其他一些软件包中安装了opencv:
pip install opencv-python
我使用以下工具检查版本:
(Python38) D:\mypath\miniforge3\envs\Python38>pip list |findstr opencv
opencv-contrib-python 4.6.0.66
opencv-python 4.6.0.66
opencv-python-headless 4.6.0.66
因此,它不应该是由于版本之间的不兼容性,因为这是经常在网上发现的。然而,我仍然得到一个导入错误:
ImportError: cannot import the name '_registerMatType' from 'cv2.cv2' (c:\python38\lib\site-packages\cv2\cv2.cp38-win_amd64.pyd)
这指向分区c:\我觉得这很奇怪,肯定是错误的指示。我还不明白这一点。有人能帮我解决这个问题吗?
1条答案
按热度按时间nkhmeac61#
不要安装OpenCV的多个软件包变体。
安装一个变体。
将它们全部删除,然后安装其中一个。
它们都包含基本模块。
只使用PyPI上的包(可以用pip安装)。那些是官方包。