今天接触到用Python调用C++的需求,同事用C++封装好的pyd,主要是用于解析Windows硬件驱动的inf文件信息。
如图:
那么在Python里面如何调用Common.pyd和FileHelper.pyd中的函数呢?
首先,把封装好的接口文件解压后,整个目录放到我的项目中。
我这里只需要调用Common.pyd和FileHelper.pyd中的函数,实现相关功能即可。
这里import很容易遇到路径报错的问题。如图:
这个错误查了下,解决方法:import之前用sys.path.append()方法加入xxx.pyd所在路径,确定当前路径推荐用os.path.realpath('.')。
因为使用Python import 模块时,
先会在模块的搜索path里依次搜索(前面会覆盖之后出现的同名模块),次序为:
1. 程序的主目录(交互模式下当前的工作目录或 脚本文件所在的目录)。
2. 环境变量 PYTHONPATH目录(如果已经进行了设置)。
3. 标准链接库目录(标准库模块所在目录 C:\Python27或C:\Python27\Lib\site-packages 目录中)。
4. 任何放在标准链接库目录中的.pth文件中记录的目录。
我这里是用的第一个方法:
importsys
sys.path.append('D:\\PycharmProjects\\driverIdentify\\module')
然后就能正常调用C++的函数了。
比较简单,已经能正常调用C++封装的.pyd文件中函数,并实现相关功能,后面的实际应用功能还没写。
领取专属 10元无门槛券
私享最新 技术干货