华为SDC SDK

面壁者

事情已经过去了,大约花了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...,我选择了下图的版本下载:
image.png
之后是直接正常安装。
注意,网上有些说需要安装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文件夹内
image.png
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)

返回结果:
image.png

世界终于平静了。。。

阅读 1.6k
1 声望
0 粉丝
0 条评论
1 声望
0 粉丝
文章目录
宣传栏