【问题标题】:numpy.core.multiarray failed to import while invoking python module through C++ application developed in xcodenumpy.core.multiarray 在通过 xcode 中开发的 C++ 应用程序调用 python 模块时导入失败
【发布时间】: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。

【问题讨论】:

    标签: python c++ numpy anaconda virtualenv


    【解决方案1】:

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

    pip uninstall numpy
    conda install numpy
    

    【讨论】:

    • 汤姆,感谢您的回复。我试过了,但没有帮助。我尝试了一种解决此问题的替代方法。在 XYZ 的 init.py 中,我在导入 cv2 之前添加了“import numpy.core.multiarray”,从而解决了这个问题。仍然想知道它是如何工作的。
    猜你喜欢
    • 2016-03-07
    • 2022-08-13
    • 1970-01-01
    • 1970-01-01
    • 2017-12-05
    • 2016-12-07
    • 2017-12-26
    • 2019-06-12
    • 1970-01-01
    相关资源
    最近更新 更多