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脚本中遇到的问题