cv2 坏掉的典型表现
比如你这次这种:
import cv2能导入- 但
cv2.__file__是None,或者显示成 namespace cv2.INTER_CUBIC、cv2.resize这类基础属性不存在
这通常说明 OpenCV 没有正常装好,只剩了一个残缺的 cv2 空壳。
正确修法
核心就四步:
1. 用 ComfyUI 自带 Python 卸载所有 OpenCV 相关包
python_embeded\python.exe -s -m pip uninstall -y opencv-python
python_embeded\python.exe -s -m pip uninstall -y opencv-contrib-python
python_embeded\python.exe -s -m pip uninstall -y opencv-python-headless
python_embeded\python.exe -s -m pip uninstall -y opencv-contrib-python-headless
2. 手动删除残留
重点删:
E:\ComfyUI\python_embeded\Lib\site-packages\cv2
还有残留的 opencv_*.dist-info 目录也删掉。
3. 重新安装一个干净版本
python_embeded\python.exe -s -m pip install --no-cache-dir opencv-python==4.10.0.84
4. 立刻验证
python_embeded\python.exe -c "import cv2; print(cv2.__file__); print(cv2.__version__); print(hasattr(cv2,'INTER_CUBIC')); print(cv2.INTER_CUBIC)"
正常结果应该是:
__file__指向site-packages\cv2\__init__.py__version__正常hasattr(..., 'INTER_CUBIC')是Truecv2.INTER_CUBIC能输出数值
一句话结论
cv2 坏了,本质上就是卸干净、删残留、重装、再验证。
你这次的根因
你原来的 cv2 是个坏掉的 namespace 包,不是真正的 OpenCV 模块,所以才会报:
AttributeError: module 'cv2' has no attribute 'INTER_CUBIC'
后来你重装后已经恢复正常了。
最精简记忆版
以后再遇到,直接记这个:
卸载 opencv 相关包
→ 删除 site-packages\cv2 残留
→ 重装 opencv-python
→ 用 INTER_CUBIC 测试
