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

时间:2016-06-27 14:49:39

标签: c++ python-3.x python-embedding

我想让一个脚本从c ++嵌入式python运行时调用numpy,方法是设置运行时路径以了解site-packages中的numpy模块。

然而我收到错误:

  

无法导入名称'多阵列'

来自\ Lib \ site-packages \ numpy \ core__init_.py

from . import multiarrray

我试图将os.path设置为xxx \ numpy \ core但是在导入语句中它似乎仍然无法找到multiarray.pyd文件

我已经阅读了类似的问题,但没有一个答案与我的案例相关。

我正在使用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更广泛,因为从嵌入式环境导入的基于 ANY .pyd的包会出现这个问题吗?

任何帮助表示感谢。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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