C++ 中的嵌入式 python:importerror importing numpy.core.multiarray

Posted

技术标签:

【中文标题】C++ 中的嵌入式 python:importerror importing numpy.core.multiarray【英文标题】:Embedded python in C++: importerror importing numpy.core.multiarray 【发布时间】:2018-01-15 14:59:16 【问题描述】:

我正在 Visual Studio 2017 中开发一个应该调用 python 脚本的 C++ 程序。我可以在 VS 交互式 python 中导入 numpy,但是在从 main.cpp 调用的文件中导入 numpy 时出现错误

Importing the multiarray numpy extension module failed.  Most
likely you are trying to import a failed build of numpy.
If you're working with a numpy git repo, try `git clean -xdf` (removes all
files not under version control).  Otherwise reinstall numpy.

我正在使用 Python 3.6、numpy 1.12.0,并在 x64 调试模式下构建 main.cpp。我也在使用 Cmake 来构建。

我已经搜索了很多,但我找不到可行的解决方案。

【问题讨论】:

你试过错误所说的吗?尝试重新安装 numpy 可能是相对路径错误。例如。确保模块在 sys.path 中。检查使用import sys 然后print(sys.path) @Adosi 是的。我已经尝试过多个版本的 numpy(互联网上说 1.12.0 或 1.12.1 可能会消除错误)。我还检查了任何地方都没有其他版本的 numpy。我已经在 VS 中使用 pip 安装了 numpy。 @Roars sys.path 包含有效路径。 VS 交互式 python 中的 sys.path 和 python 文件之间的唯一区别是,在 VS 中我有一个 python36.zip 的路径,而在 .py--文件中它是一个 python36_d.zip 文件 尝试从包含 python 的文件夹中运行 exe(在构建解决方案时创建) 【参考方案1】:

我改为使用 boost/python.hpp 头文件。虽然我在调试模式下构建我的应用程序,但它没有使用 python 的调试版本。 numpy 的导入现在正在工作。

【讨论】:

以上是关于C++ 中的嵌入式 python:importerror importing numpy.core.multiarray的主要内容,如果未能解决你的问题,请参考以下文章

c++ 中的嵌入式 python 代码 - 导入 python 库时出错

2018-11-25随笔-今天谈谈C++嵌入Python脚本中遇到的问题

嵌入在 C++ 中的 Python

从 C++ 应用程序中的嵌入式 Python 调用时,多数组扩展库上的 Numpy 导入失败

如何中断嵌入在 C++ 应用程序中的 python 解释器

从 C++ 停止嵌入式 Python 提示符