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