【笔记】MSYS2 安装 Python 构建依赖记录Cython + Ninja + Meson + meson-python

article/2025/8/4 2:26:16

#工作记录


📌 安装目标

为构建 Python C 扩展(如 numpy)安装必要依赖:

  • Cython
  • Ninja
  • Meson + meson-python

✅ 成功安装命令

pacman -S mingw-w64-x86_64-cython
pacman -S mingw-w64-x86_64-ninja
pacman -S mingw-w64-x86_64-meson-python

 

 

 

 

📦 安装结果

包名版本大小状态
mingw-w64-x86_64-cython3.0.12-118.25 MiB✅ 成功
mingw-w64-x86_64-ninja1.12.1-11.86 MiB✅ 成功
mingw-w64-x86_64-meson1.8.1-12.1 MiB✅ 成功(隐含依赖)
mingw-w64-x86_64-python-pyproject-metadata0.9.1-139.4 KiB✅ 成功(隐含依赖)
mingw-w64-x86_64-meson-python0.18.0-169.2 KiB✅ 成功

⚠️ 注意事项

1. 包命名规则修正

MSYS2 的包命名规则根据功能不同而有所区别:

包类型命名规则示例
Python 绑定库带 python- 前缀mingw-w64-x86_64-python-maturin
通用工具/跨语言库不带 python- 前缀mingw-w64-x86_64-cythonmingw-w64-x86_64-ninja
Python 插件/扩展工具带 python- 前缀mingw-w64-x86_64-meson-python

关键点

  • 如果包是 Python 的绑定库(如 maturin),需带 python- 前缀。
  • 如果是通用工具(如 ninjacython),不带 python- 前缀。
  • 如果是 Python 插件(如 meson-python),需带 python- 前缀。

2. 隐含依赖问题

部分包会自动拉取依赖项(如 meson-python 会自动安装 mesonpyproject-metadata)。
如果手动安装失败,可尝试通过以下命令搜索可用包:

pacman -Ss <keyword>

例如:

pacman -Ss meson
pacman -Ss cython

3. SSL 证书问题(历史遗留)

如果我们仍遇到 SSL 错误,可临时使用以下命令:

pip install <package> --trusted-host pypi.org --trusted-host files.pythonhosted.org

pip install --trusted-host pypi.org --trusted-host files.pythonhosted.org <package>

 

⚠️ 不推荐长期使用,建议切换到官方 Python 环境(见下文)。


🧪 验证安装

cython --version
ninja --version
meson --version

🛠️ 推荐操作建议

1. 切换到官方 Python 环境

MSYS2 的 Python 环境不适合构建 C 扩展,推荐使用 Python 官方发行版 并通过 py 命令管理版本。
示例:

py -3.12 -m venv .venv
.venv\Scripts\activate
pip install numpy

2. 使用 MSYS2 的 Python 时

  • 确保已安装所有构建依赖(如 ninjameson-python)。
  • 避免在隔离环境中构建(Poetry 的隔离模式可能导致依赖缺失)。

📝 总结

关键点说明
包命名规则根据功能区分 python- 前缀的使用
隐含依赖安装 meson-python 时会自动拉取 meson 和 pyproject-metadata
推荐环境使用官方 Python 环境避免构建问题
验证命令检查 cythonninjameson 的版本号

📎 附录:常见问题

Q: 安装失败,提示 target not found

A: 使用 pacman -Ss <package> 搜索可用包名,确认拼写和前缀是否正确。

Q: 构建仍失败,提示缺少 Ninja/Make?

A: 确认已安装 mingw-w64-x86_64-ninja,或切换到官方 Python 环境。


最后更新时间:2025-06-01 19:45:26
 


http://www.hkcw.cn/article/IxAWGKrIVH.shtml

相关文章

【染色归一化】staintools工具详讲

staintools工具原代码是没有GPU加速的,代码链接 运行速度较慢,因此,github上有研究者写了pytorch加速版本的staintools 本篇主要讲GPU加速版本的staintools工具的使用教程。 1.背景 目前的公开数据库中的WSI是由不同研究机构制作上传的,这导致WSI有很大的颜色差别,例如:…

历年中山大学计算机保研上机真题

历年中山大学计算机保研上机真题 2025中山大学计算机保研上机真题 2024中山大学计算机保研上机真题 2023中山大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school 不连续1的子串 题目描述 给定一个数字 n n n&#xff0c;输出长度为 n n n 的 01…

历年山东大学计算机保研上机真题

历年山东大学计算机保研上机真题 2025山东大学计算机保研上机真题 2024山东大学计算机保研上机真题 2023山东大学计算机保研上机真题 在线测评链接&#xff1a;https://pgcode.cn/school 从1到100找质数 题目描述 从 1 1 1 到 100 100 100 中找出所有的质数。 输入格式 …

殷咏梅教授:OptiTROP-Breast05亮相2025 ASCO,中国原创TROP2 ADC为mTNBC一线治疗带来新希望

引言 抗体药物偶联物&#xff08;ADC&#xff09;以其精准杀伤特性&#xff0c;已成为乳腺癌治疗领域的探索热点。近年来&#xff0c;在全球ADC研发赛道中&#xff0c;中国的ADC力量正逐步崛起&#xff0c;乳腺癌领域首个中国原研、国际品质的TROP2 ADC芦康沙妥珠单抗脱颖而出&…

02.上帝之心算法用GPU计算提速50倍

本文介绍了上帝之心的算法及其Python实现&#xff0c;使用Python语言的性能分析工具测算性能瓶颈&#xff0c;将算法最耗时的部分重构至CUDA C语言在纯GPU上运行&#xff0c;利用GPU核心更多并行更快的优势显著提高算法运算速度&#xff0c;实现了结果不变的情况下将耗时缩短五…

latex 三线表-算法对比表

效果 导入包 \usepackage{booktabs} \usepackage{multirow}表格 \begin{table}[t]\caption{\textbf{Comparison of test results of various algorithms}\label{tab}}\centering\begin{tabular}{ccccc}\toprule\multirow{2}{*}{Algorithms} & \multirow{2}{*}{mAP} &…

蓝桥云课ROS学习C++教程cpp-geeksforgeeks版本

教程 网上教程很多&#xff0c;都可以在蓝桥云课ROS中复习。 #include <bits/stdc.h> using namespace std;int main() {// Creating a map of integer keys// and string valuesmap<int, string> m {{1, "Geeks"},{2,"For"}, {3,"Geek…

rtos,什么意思

RTOS,它的全称是 Real-Time Operating System,中文我们通常称之为“实时操作系统”。 让我们把这个词拆解开来,细细品味: Operating System (操作系统 - OS): 你肯定熟悉我们日常用的 Windows、Linux (桌面版或服务器版)、macOS 等。这些都是操作系统。它们的核心作用是什…

研读论文《Attention Is All You Need》(13)

原文 26 4 Why Self-Attention In this section we compare various aspects of self-attention layers to the recurrent and convolutional layers commonly used for mapping one variable-length sequence of symbol representations ( x 1 , ⋯ , x n ) (x_1,\cdots,x_…

智能体时代的数据安全:企业如何平衡效率与风险

数据来源&#xff1a;企业网D1net 智能体时代的数据安全&#xff1a;企业如何平衡效率与风险&#xff1f; 在数字化转型浪潮中&#xff0c;智能体&#xff08;Autonomous AI Agents&#xff09;正成为企业提升效率的利器。这些能够自主执行任务、分析数据并做出决策的AI系统&…

从模式到架构:Java 工厂模式的设计哲学与工程化实践

一、工厂模式概述 &#xff08;一&#xff09;定义与核心思想 工厂模式&#xff08;Factory Pattern&#xff09;是软件开发中常用的创建型设计模式&#xff0c;其核心思想是将对象的创建过程封装起来&#xff0c;通过工厂类来统一管理对象的创建逻辑。这种模式分离了对象的创…

Torch 和 CUDA 版本不兼容

原因解释 参考&#xff1a;https://stackoverflow.com/questions/76678846/pytorch-version-for-cuda-12-2 nvcc CUDA Toolkit 12.6 Downloads | NVIDIA Developer nvcc: NVIDIA (R) Cuda compiler driver Copyright (c) 2005-2024 NVIDIA Corporation Built on Fri_Jun_14_…

第九天:java注解

注解 1 什么是注解&#xff08;Annotation&#xff09; public class Test01 extends Object{//Override重写的注解Overridepublic String toString() {return "Test01{}";} }2 内置注解 2.1 Override Override重写的注解 Override public String toString() {ret…

Linux --进程状态

目录 进程状态(宏观) Linux进程状态 进程状态的查看 进程状态(宏观) 为了了解Linux的进程状态&#xff0c;首先我们得了解进程状态&#xff0c;因为不仅仅是在Linux下有进程状态&#xff0c;macos和windows下都有进程状态&#xff0c;这里先解释的是一个宏观概念下的&#xff…

定时任务:springboot集成xxl-job-core(二)

定时任务实现方式&#xff1a; 存在的问题&#xff1a; xxl-job的原理&#xff1a; 可以根据服务器的个数进行动态分片&#xff0c;每台服务器分到的处理数据是不一样的。 1. 多台机器动态注册 多台机器同时配置了调度器xxl-job-admin之后&#xff0c;执行器那里会有多个注…

操作系统学习(十)——文件系统

一、文件系统 在操作系统中&#xff0c;文件系统是用于管理存储设备上数据组织与存取的一种机制。 它是操作系统的重要组成部分&#xff0c;承担着对文件的创建、读写、组织、存储、访问控制等管理任务。 功能&#xff1a; 文件的创建与删除&#xff1b;文件的读写与访问&am…

【Linux】shell的条件判断

目录 一.使用逻辑运算符判定命令执行结果 二.条件判断方法 三.判断表达式 3.1文件判断表达式 3.2字符串测试表达式 3.3整数测试表达式 3.4逻辑操作符 一.使用逻辑运算符判定命令执行结果 && 在命令执行后如果没有任何报错时会执行符号后面的动作|| 在命令执行后…

Codeforces Round 1028 (Div. 2)(ABC)

A. Gellyfish and Tricolor Pansy 翻译&#xff1a; 水母和小花在玩一个叫 “决斗 ”的游戏。 水母有 a HP&#xff0c;花花有 b HP。 它们各有一个骑士。水母的骑士有 c HP&#xff0c;而花花的骑士有 d HP。 他们将进行一轮游戏&#xff0c;直到其中一方获胜。对于 k1、2、.…

智能化程度越高,算法“越狱”也会越来越多

前两天&#xff0c;有关美国人工智能&#xff08;AI&#xff09;公司OpenAI旗下推理大模型o3首次出现“不听人类指挥&#xff0c;拒绝关闭”的消息引发高度关注。这种现象应该不算技术性“错误”&#xff0c;而是算法&#xff08;无意识性&#xff09;“失误”——“算法越狱”…

Redis最佳实践——性能优化技巧之Pipeline 批量操作

Redis Pipeline批量操作在电商应用中的性能优化技巧 一、Pipeline核心原理与性能优势 1. 工作机制对比&#xff1a; sequenceDiagramtitle 常规请求 vs Pipeline请求# 常规模式Client->>Redis: 命令1Redis-->>Client: 响应1Client->>Redis: 命令2Redis--&g…