我有一个C ++项目(让我们称之为base.cpp)使用Armadillo库(需要BLAS和LAPACK库的libs和dll)。我想通过我的另一个python项目(main.py)通过Cython从这个C ++项目导入函数。我使用setup.py(包括所有.cpp,.h和.lib文件)来构建.pyd文件(称之为test.pyd)。 test.pyd文件的构建是成功的,但是当我运行我的main.py文件时,在测试导入函数的部分期间“导入错误:DLL加载失败:找不到指定的模块”。 Cython使用MSVC 2014编译器。我检查了Windows查找DLL文件的目录(https://msdn.microsoft.com/en-us/library/7d83bc18.aspx),但是当我尝试插入我的dll文件时,没有任何改变。我的test.pyx文件如下所示:
cdef extern from "base.h":
void printer()
def printer_wrapper():
printer()
其中函数打印机只是base.cpp中定义的函数,计算矩阵的特征值。 main.py只是:
from test import printer_wrapper
if __name__ == '__main__':
printer_wrapper()
您是否有任何建议我可以放置我的dll文件以便在main.py运行时找到?