numpy.core.multiarray 在通过 xcode 中开发的 C++ 应用程序调用 python 模块时导入失败

Posted

技术标签:

【中文标题】numpy.core.multiarray 在通过 xcode 中开发的 C++ 应用程序调用 python 模块时导入失败【英文标题】:numpy.core.multiarray failed to import while invoking python module through C++ application developed in xcode 【发布时间】:2019-02-19 05:12:40 【问题描述】:

我正在使用 anaconda 来维护 python 虚拟环境。我有一个 python 模块,我想从通过 xcode 9.2 开发的 c++ 应用程序调用它。

pModule = PyImport_Import(pName) 在 C++ 应用程序中失败并出现错误

ImportError: numpy.core.multiarray failed to import.

pName 这里指的是一个模块xyz.py。 xyz 的 __init__.py 导入 cv2,而后者又使用 from .cv2 import *。这失败并出现错误“numpy.core.multiarray 无法导入”。 opencv 和 numpy 的软件包安装在相同的虚拟环境中,仍然无法导入 numpy 的 core.multiarray 模块。

对我来说,这似乎不是路径问题,因为我使用 PySys_SetPath 设置安装包的路径,路径看起来像 anaconda/envs/XYZ/lib/python3.5/site-packages

只是为了添加更多信息,我使用的 xyz 模块用于对象检测,更具体地说是它的 imageAI 对象检测模块。所以在 python3.5/site-packages 下我有 imageai 的检测模块(python3.5/site-packages/imageai/Detection/)。在检测中有 init.py 正在尝试导入 cv2。收到的错误是 cv2 尝试导入 numpy.core.multiarray 时,路径 python3.5/site-packages 中存在 cv2 和 numpy。

【问题讨论】:

【参考方案1】:

使用 conda NOT pip 重新安装 numpy 有什么作用

pip uninstall numpy
conda install numpy

【讨论】:

汤姆,感谢您的回复。我试过了,但没有帮助。我尝试了一种解决此问题的替代方法。在 XYZ 的 init.py 中,我在导入 cv2 之前添加了“import numpy.core.multiarray”,从而解决了这个问题。仍然想知道它是如何工作的。

以上是关于numpy.core.multiarray 在通过 xcode 中开发的 C++ 应用程序调用 python 模块时导入失败的主要内容,如果未能解决你的问题,请参考以下文章

Google App Engine - 缺少 numpy.core.multiarray

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

导入opencv并获取numpy.core.multiarray导入失败

ImportError: numpy.core.multiarray failed to import

ImportError: numpy.core.multiarray failed to import

ImportError: numpy.core.multiarray failed to import