在嵌入式 Python c++ 应用程序中导入 Numpy

Importing Numpy in embedded Python c++ application

我想通过设置运行时路径来了解位于站点包中的 numpy 模块,从而让脚本从嵌入的 c++ python 运行时调用 numpy。

但是我得到错误:

cannot import name 'multiarray'

来自\Lib\site-packages\numpy\core__init_.py就行了

from . import multiarrray

我已经尝试将 os.path 设置为 xxx\numpy\core 但在导入语句期间似乎仍然找不到 multiarray.pyd 文件

我已经阅读了提出的类似问题,但 none 的答案似乎与我的案例相关。

我正在使用 Python 3.4.4(32 位)并使用滚轮安装了 Numpy 1.11.1 numpy-1.11.1-cp34-none-win32.whl

python -m pip install numpy-1.11.1-cp34-none-win32.whl

已完成,没有任何错误。

似乎失败消息可能 more general 而不仅仅是不完整的 PYTHONPATH?

还认为它可能比 Numpy 更广泛,因为 任何 从嵌入式环境导入的基于 .pyd 的包都会有这个问题?

感谢任何帮助。

您是否确保所有 NumPy 包括:\numpy\core\include\numpy\ 在构建期间都存在?那是我唯一一次遇到这些类型的错误是如果构建找不到所有 NumPy 包含...虽然在嵌入过程中我发现 numpy 整个目录(已经构建在你的构建机器上)必须是在 Py_SetPath(python35.lib;importlibs); 下的目录中,假设 importlibs 是一个包含 NumPy 的目录以及您想要捆绑的任何其他内容。

似乎答案是安装 python 3.4.1 以匹配 3.4.1 的 python34.dll 版本。