共计 1162 个字符,预计需要花费 3 分钟才能阅读完成。
事件曾经过来了,大概花了 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)
返回后果:
世界终于平静了。。。