解决python调用用c封装的c++动态链接库失败的问题
问题描述:
调用用c封装过的c++动态链接库时,python出现filenotfounderror错误,提示找不到模块。
问题分析:
可能是没有加载到c++的库文件。python 3.8及更高版本更改了dll搜索加载机制,只在指定可行的位置搜索加载dll。
解决方法:
使用os.add_dll_directory()方法,将c++库文件的路径添加到dll搜索路径中。例如:
import os os.add_dll_directory("C:\MinGW\bin") # 假设libstdc++-6.dll在该路径下
通过在python调用动态链接库之前添加此行代码,即可解决找不到模块的错误。