解决apache部署深度学习模型出现的ImportError: DLL load failed while importing cv2

前提:我的代码在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

②解压至设置路径下

③在python环境下安装opencv

pip install opencv-python

安装后可以找到Lib\site-package\cv2文件夹:

可以对比一下,官网下载的文件结果和python-pip下载的文件结构:

查看两个文件的config,会发现都是要寻找x64/vc16/bin这个文件夹

但是opencv官网的可以找到x64这个文件夹,pip安装的没有这个文件夹。因此按照文件结构复制一个x64文件夹即可(我自己还把官网下载的python/cv2内的内容复制到pip安装后的cv2文件夹中),即可解决问题。

  • 15
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值