PyCharm中依赖cv2/imutils的Flask应用遇NumPy版本兼容错误
问题:Flask应用导入cv2/imutils时出现NumPy版本兼容错误
在PyCharm中开发依赖cv2和imutils的Flask应用,执行以下导入语句时触发报错:
import imutils import cv2
报错回溯信息
Traceback (most recent call last): File "C:\Users\mohit\OneDrive\Desktop\Front End\Flask\pythonProject1\tut2.py", line 8, in <module> import imutils File "C:\Users\mohit\OneDrive\Desktop\Front End\Flask\pythonProject1\.venv\Lib\site-packages\imutils\__init__.py", line 8, in <module> from .convenience import translate File "C:\Users\mohit\OneDrive\Desktop\Front End\Flask\pythonProject1\.venv\Lib\site-packages\imutils\convenience.py", line 6, in <module> import cv2 File "C:\Users\mohit\OneDrive\Desktop\Front End\Flask\pythonProject1\.venv\Lib\site-packages\cv2\__init__.py", line 181, in <module> bootstrap() File "C:\Users\mohit\OneDrive\Desktop\Front End\Flask\pythonProject1\.venv\Lib\site-packages\cv2\__init__.py", line 153, in bootstrap native_module = importlib.import_module("cv2") File "C:\Program Files\Python312\Lib\importlib\__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) AttributeError: _ARRAY_API not found Traceback (most recent call last): File "C:\Users\mohit\OneDrive\Desktop\Front End\Flask\pythonProject1\tut2.py", line 8, in <module> import imutils File "C:\Users\mohit\OneDrive\Desktop\Front End\Flask\pythonProject1\.venv\Lib\site-packages\imutils\__init__.py", line 8, in <module> from .convenience import translate File "C:\Users\mohit\OneDrive\Desktop\Front End\Flask\pythonProject1\.venv\Lib\site-packages\imutils\convenience.py", line 6, in <module> import cv2 File "C:\Users\mohit\OneDrive\Desktop\Front End\Flask\pythonProject1\.venv\Lib\site-packages\cv2\__init__.py", line 181, in <module> bootstrap() File "C:\Users\mohit\OneDrive\Desktop\Front End\Flask\pythonProject1\.venv\Lib\site-packages\cv2\__init__.py", line 153, in bootstrap native_module = importlib.import_module("cv2") ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "C:\Program Files\Python312\Lib\importlib\__init__.py", line 90, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ ImportError: numpy.core.multiarray failed to import
系统提示信息
使用NumPy 1.x编译的模块无法在NumPy 2.0.0中运行,可能会崩溃。要同时支持NumPy 1.x和2.x版本,模块必须使用NumPy 2.0编译。部分模块可能需要重新构建,例如使用'pybind11>=2.12'。
如果您是模块用户,最简单的解决方案是降级到'numpy<2',或尝试升级受影响的模块。我们预计部分模块需要时间来支持NumPy 2。
解决方案
- 降级NumPy到1.x版本:cv2(opencv-python)和imutils目前对NumPy 2.0的支持不完善,降级是最直接的解决方法。在项目虚拟环境中执行:
pip install numpy<2 - 验证PyCharm虚拟环境配置:通过
File > Settings > Project: pythonProject1 > Python Interpreter确认使用的是项目下的.venv虚拟环境,避免使用全局Python环境导致依赖冲突。 - 重新安装依赖库:降级NumPy后,卸载并重新安装cv2和imutils,确保它们适配当前NumPy版本:
pip uninstall opencv-python imutils -y pip install opencv-python imutils - 尝试降级Python版本:Python 3.12与NumPy 2.0的组合兼容问题较多,若上述方法无效,可将Python降级到3.11版本,重新创建虚拟环境并安装所有依赖。
内容的提问来源于stack exchange,提问作者Mohit Gupta
相关产品推荐
相关产品推荐

