Python import .pyd文件时会搜索sys.path列表中的路径
运行
import xxx.pyd
1. 'ImportError: No module named xxx'
可能是xxx.pyd所在路径不在sys.path中。
解决方法:import之前用sys.path.append()方法加入xxx.pyd所在路径,确定当前路径推荐用os.path.realpath('.')。
2. ‘ImportError: DLL load failed: 找不到指定的程序'
可能是xxx.pyd调用了其他的DLL文件,且其调用的DLL文件无法被搜索到。
解决方法:用dependency walker查看xxx.pyd依赖的DLL,然后有两种方案
(1)将所有DLL放入xxx.pyd所在目录
(2)单独建立存放DLL文件的目录,比如D:\test\DLLFiles。用os.environ['path']方法加入到环境变量PATH中:
os.environ['path'] += ';D:\\test\\DLLFiles'
本文参考了文章
Robot Framework中Python加载相对路径DLL