事件曾经过来了,大概花了8个小时解决问题。
故障形容:
通过python载入SDK的动态链接库报错,刚开始是报错126谬误,找不到模块,起初报错是不是无效的32位程序。
开发环境:
64位的python3.7,64位的win10,应用pycharm开发
根本原因:
华为官网下载的SDK库 SDC Development Kit 8.0.RC3,外面尽管辨别了64位和32位,还建设了两个文件夹,output32和output64,我就始终认为这个output64外面就是64位动态链接库,实际上这个库也是32位的。
所以用64位的python调用32位的dll会报错。
至于126找不到模块的谬误,是门路写的不对。
解决办法:
1,装置32位的python,我发现曾经到了3.9了,于是装置了3.8的32位版本,链接地址:https://www.python.org/downlo…,我抉择了下图的版本下载:
之后是间接失常装置。
留神,网上有些说须要装置anaconda,我也没管,我记得以前python2和python3都在我电脑里共存的。
装置实现后,找到装置门路,测试一下python.exe是否可用。
我的门路:
C:\Users\Administrator\AppData\Local\Programs\Python
外面应该分成两个版本各自独自的文件夹,进入新装置的(我的是python38-32),shift+右键运行cmd,输出python,回车,看一下版本是不是失常。
2,pycharm里配置32位版本
大略操作:file->settings->project->project Interpreter
点击右上角的齿轮图标,抉择show all,能够看到已有一个python 64位的选项了,再点击加号,抉择new environment(建设一个新的环境),location目录设置你的我的项目目录,留神我的项目目录下如果曾经有venva或者venvb了,你就弄个venvc,相当于一个新文件夹。
上面抉择你装置python3.8的目录里的python.exe文件。
而后就是一路OK。
3,把SDK包里的DLL文件和所有相干文件(我的如下图),复制到你方才建设的我的项目目录下的venvc/Scripts/lib文件夹内
4,将你的py格式文件关上,设置一下运行环境:
run->editconfigurations,在右侧python interpreter中,抉择你方才装的3.8版本。
一路OK。
当初开始测试代码:
from ctypes import *
pDll = WinDLL('D:\\ai\\venvc\\Scripts\\lib\\HWPuSDK.dll')
res = pDll.IVS_PU_Init()
print(res)
返回后果:
世界终于平静了。。。