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

如何指定Bazel在Mingw64构建时使用已安装的Numpy二进制包

解决方案

一、让Bazel使用Pacman已安装的Numpy

要阻止Bazel重新编译Numpy,需将系统中Pacman安装的Numpy暴露为Bazel可识别的依赖目标,具体步骤如下:

  1. 创建系统Numpy的Bazel导入规则
    在项目内新建third_party/python/numpy目录,创建BUILD文件,内容如下:
py_import(
    name = "numpy",
    imports = ["C:/msys64/mingw64/lib/python3.10/site-packages"],
    visibility = ["//visibility:public"],
)

注:路径需与本地Numpy实际安装路径一致,可通过执行python -c "import numpy; print(numpy.__path__)"确认准确路径

  1. 修改项目BUILD文件的依赖配置
    在你的py_wheel规则中,移除requires里的"numpy"条目,并在deps中添加上述导入的Numpy目标:
py_wheel(
    name = "my_wheel",
    distribution = "my",
    python_tag = "py3",
    version = "0.0.1",
    deps = [
        ":my_pkg",
        "//third_party/python/numpy:numpy",  # 新增系统Numpy依赖
    ],
    requires = [
        "appdirs",
        "importlib_resources",
        "matplotlib",
        "psutil",
        "PyGObject",
        "pyyaml",
        "more_itertools",
        "termcolor",
        # 移除原有的"numpy"条目
    ],
    entry_points = {
        'gui_scripts': [
            'my-gui = my.main:main',
        ],
        'console_scripts': [
            'my_parser = example.my_parser:console_entry',
        ],
    }
)
  1. 指定Bazel使用系统Python
    在项目根目录的.bazelrc文件(无则新建)中添加配置,强制Bazel使用Mingw64环境的Python:
build --python_path=C:/msys64/mingw64/bin/python.exe

二、查看Bazel构建使用的Python和Pip版本

有两种便捷方式可查看:

  1. 直接执行版本查询命令
  • 查看Python版本:
    bazel run @python//:python -- --version
    
  • 查看Pip版本:
    bazel run @python//:pip -- --version
    
  1. 通过构建日志查看
    执行构建时添加--verbose_failures参数,日志中会明确显示Bazel调用的Python、Pip路径及对应版本:
bazel build //your_target --verbose_failures

内容的提问来源于stack exchange,提问作者Swaminath Bera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 13:53:19