前提:我的代码在pycharm里正常运行,import cv2也可以正常导入。但是在部署到apache上后报错:ImportError: DLL load failed while importing cv2。
我尝试的解决方法:
(1)将cv2的路径添加至环境变量中(未成功)
①选择系统变量,选择path
②在path中增加F:\bushu\code\Python38\Lib\site-packages\cv2(换成你的路径)
(2)将opencv文件夹添加至python的环境变量中(未成功)
在F:\bushu\code\code\项目名称\wsgi.py
设置opencv路径
# # 设置OpenCV DLL路径 # opencv_dll_path = r'F:\bushu\code\Python38\Lib\site-packages\cv2' # 替换成你的实际DLL路径 # os.environ['PATH'] += os.pathsep + opencv_dll_path
(3)opencv动态库编译(未成功,且造成代码中的cv2无法被引用)
环境搭建:WINDOWS下CMake+MinGW64搭建C/C++编译环境-CSDN博客
编译与结果测试:
①WIN10下使用MinGW编译安装运行OpenCV_mingw编译opencv-CSDN博客
②Windows安装OpenCV——利用MinGW+CMake从源码编译_cmake来编译opencv mingw-CSDN博客
(4)查看python环境中如何引用cv2
F:\bushu\code\Python38\Lib\site-packages\cv2>dumpbin python-3.8\cv2.pyd /dependents Microsoft (R) COFF/PE Dumper Version 14.39.33523.0 Copyright (C) Microsoft Corporation. All rights reserved. Dump of file python-3.8\cv2.pyd File Type: DLL Image has the following dependencies: libopencv_world4100.dll libgcc_s_seh-1.dll KERNEL32.dll msvcrt.dll libstdc++-6.dll python38.dll Summary 1000 .CRT 2000 .bss 38000 .data 1000 .debug_abbrev 1000 .debug_aranges 1000 .debug_frame 2000 .debug_info 1000 .debug_line 1000 .debug_str 1000 .edata 23000 .idata 11000 .pdata 11B000 .rdata 7000 .reloc 308000 .text 1000 .tls 57000 .xdata F:\bushu\code\Python38\Lib\site-packages\cv2>dumpbin cv2.pyd /dependents Microsoft (R) COFF/PE Dumper Version 14.39.33523.0 Copyright (C) Microsoft Corporation. All rights reserved.
(5)(成功)在官网下载opencv文件并替换库包中的文件
①下载opencv
②解压至设置路径下![](https://i-blog.csdnimg.cn/direct/173ebf878c04454a9676a9b848fd7504.png)
③在python环境下安装opencv
pip install opencv-python
安装后可以找到Lib\site-package\cv2
文件夹:
可以对比一下,官网下载的文件结果和python-pip下载的文件结构:
查看两个文件的config,会发现都是要寻找x64/vc16/bin
这个文件夹
但是opencv官网的可以找到x64这个文件夹,pip安装的没有这个文件夹。因此按照文件结构复制一个x64文件夹即可(我自己还把官网下载的python/cv2内的内容复制到pip安装后的cv2文件夹中),即可解决问题。