You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Windows11下用matplotlib_cpp遇numpy.core._multiarray_umath模块缺失求助

解决Windows 11下matplotlib_cpp搭配Python3.11/Numpy1.24.2的报错及Anaconda环境构建问题

一、解决No module named 'numpy.core._multiarray_umath'报错

1. 确认Python环境一致性

确保matplotlib_cpp编译时链接的Python解释器,和安装Numpy1.24.2的Python3.11是同一个环境。如果系统存在多个Python版本,需在CMake构建时明确指定目标Python路径,避免混淆。

2. 修复CMake对Numpy的路径检测

matplotlib_cpp依赖CMake正确识别Python和Numpy的头文件、库文件。修改你的CMakeLists.txt,添加以下配置:

# 明确指定Python版本
find_package(Python 3.11 REQUIRED COMPONENTS Development NumPy)
# 添加头文件路径
include_directories(${Python_INCLUDE_DIRS} ${NumPy_INCLUDE_DIRS})
# 链接Python库到你的目标程序
target_link_libraries(your_target_executable ${Python_LIBRARIES})

替换your_target_executable为你的C++项目可执行文件名称。

3. 手动添加Numpy路径到Python运行时

如果Python运行时无法找到Numpy的核心库,可在C++代码初始化Python时,手动添加Numpy的site-packages路径:

#include <Python.h>

int main() {
    Py_Initialize();
    // 替换为你的Numpy所在site-packages路径
    PyRun_SimpleString(R"(import sys; sys.path.append("C:\\Python3.11\\Lib\\site-packages"))");
    // 后续matplotlib_cpp调用代码
    Py_Finalize();
    return 0;
}

同时,将C:\Python3.11\Lib\site-packages\numpy\core添加到系统环境变量PATH中,确保Windows能找到.pyd扩展文件。

4. 降级Numpy版本

Numpy1.24.2与Python3.11可能存在兼容性细节问题,尝试降级到更稳定的版本:

pip uninstall numpy -y
pip install numpy==1.23.5

降级后重新编译matplotlib_cpp项目。

二、在Anaconda虚拟环境中构建matplotlib_cpp

1. 准备虚拟环境

打开Anaconda Prompt,创建并激活目标环境:

conda create -n mpl_cpp_env python=3.11 numpy matplotlib -y
conda activate mpl_cpp_env

2. 配置CMake指向Anaconda环境

在CMake构建时,需明确指定Anaconda环境的Python解释器路径,避免使用系统Python。

方式1:修改CMakeLists.txt

# 指定Anaconda环境的Python.exe路径
set(Python_EXECUTABLE "C:\\Users\\YourUsername\\anaconda3\\envs\\mpl_cpp_env\\python.exe")
find_package(Python REQUIRED COMPONENTS Development NumPy)
include_directories(${Python_INCLUDE_DIRS} ${NumPy_INCLUDE_DIRS})
target_link_libraries(your_target_executable ${Python_LIBRARIES})

替换YourUsername和your_target_executable为实际内容。

方式2:CMake命令行参数指定

在项目构建目录下运行:

cmake -G "Visual Studio 17 2022" -A x64 ^
-DPython_EXECUTABLE=C:\Users\YourUsername\anaconda3\envs\mpl_cpp_env\python.exe ^
..

注意:需使用与Python位数匹配的编译平台(x64,因为Anaconda默认是64位环境),且Visual Studio版本需支持Python3.11编译(推荐VS2022)。

3. 编译项目

生成解决方案后,使用Visual Studio打开并编译,或直接用CMake命令行编译:

cmake --build . --config Release

内容的提问来源于stack exchange,提问作者0xBADF00

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:16:22