Jupyter Lab导入cv2报循环导入错误如何解决
问题根因
命令行导入cv2正常、仅Jupyter Lab环境触发该循环导入报错,核心原因只有两类:一是Jupyter使用的Python解释器和你命令行测试通过的解释器不匹配,二是Jupyter当前工作路径下存在与cv2重名的自定义文件/文件夹,触发导入优先级冲突。
修复步骤
- 先对齐两边的Python解释器
分别在命令行Python交互环境、Jupyter代码单元中执行如下代码,打印当前使用的解释器绝对路径:
如果两个输出路径不一致,说明Jupyter没有关联你已经装好正常OpenCV的虚拟环境。在命令行激活导入cv2正常的那个虚拟环境,依次执行以下命令注册kernel:import sys print(sys.executable)
执行完成后完全关闭重启Jupyter Lab,在kernel列表里选择刚注册的pip install ipykernel python -m ipykernel install --user --name=env_cvenv_cv内核,再测试导入。 - 排查同名文件冲突
在Jupyter代码单元执行如下代码拿到当前工作目录:
打开对应路径的文件夹,查找是否存在命名为import os print(os.getcwd())cv2.py的文件、或者命名为cv2的自定义文件夹,只要存在就将其重命名为其他非cv2的名称——Python导入包时会优先加载当前工作目录下的同名文件,这类重名文件会打断OpenCV的正常导入流程,触发partial initialized的循环导入报错。 - 清理多版本残留的损坏安装
如果前两步操作后仍报错,就在Jupyter当前关联的kernel环境下,彻底卸载所有OpenCV相关包,反复执行卸载命令直到提示无对应安装包,避免多版本覆盖残留:
卸载完成后重新执行pip uninstall -y opencv-python opencv-contrib-python opencv-python-headless opencv-contrib-python-headless conda uninstall -y opencvpip install opencv-python安装,重启Jupyter kernel后再测试导入即可。
内容的提问来源于stack exchange,提问作者Alessandro Togni
相关产品推荐
相关产品推荐

