我使用 Python C API 将 Python 2.7.2 解释器嵌入到 C++ 应用程序中。
在目标机器上,我不能保证安装 Python,所以我试图让嵌入式解释器查看我的应用程序所在的文件夹。所以在应用程序目录中,我有 Python 的 Lib、Libs 和 DLLs 文件夹。
在代码中,我使用了 Py_SetPythonHome() 和 Py_SetProgramName() 来加载 Python 并允许安装标准库。
我正在使用的测试脚本之一有:
import csv
import numpy
csv 行现在很好。在 \libs 目录中,我可以看到 site-packages\numpy。但是导入在这条线上崩溃。我为此使用 numpy 1.6.1。
我想我可能需要更改模块搜索路径 - 这是正确的吗?实现这一点的最佳方法是什么,以允许我的脚本可以访问像 numpy 这样的第三方库?如果有帮助,您可以假设我可以生成 numpy 目录的绝对路径。
编辑:更多信息 - 我已经设法产生回溯,当它尝试“import multiarray”行并出现错误“ImportError: DLL load failed”时,我得到的错误在 \numpy\core\_ init _.py : 找不到指定的模块”。检查目录,我找到了一个 multiarray.pyd。有什么想法吗?