当前位置: 首页 > news >正文

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

#工作记录


📌 安装目标

为构建 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.xdnf.cn/news/758719.html

相关文章:

  • 七、物理.
  • Flickr30k_Entities数据集
  • 【项目记录】登录认证(下)
  • 6.运算放大器—电源抑制比(五)
  • 2002-2022年 城市市政公用设施水平、环境、绿地等数据-社科经管实证数据
  • 殷咏梅教授:OptiTROP-Breast05亮相2025 ASCO,中国原创TROP2 ADC为mTNBC一线治疗带来新希望
  • 2024年数维杯国际大学生数学建模挑战赛B题空间变量协同估计方法研究解题全过程论文及程序
  • ZIP Cracker版本更新了
  • java中IO流分为几种
  • 深入Java NIO:构建高性能网络应用
  • AAA基础配置
  • LeetCode - 234. 回文链表
  • Roller: 抽奖系统测试的幕后剧本-测试报告
  • Spring AI Image Model、TTS,RAG
  • PINN模型相关原理
  • 【CBAP50技术手册】#32 Organizational Modelling(组织建模):BA(业务分析师)的“变革导航图”
  • 安卓jetpack compose学习笔记-UI基础学习
  • 机电的焊接技术
  • 《中国棒垒球》注册青少年运动员需要什么条件·棒球1号位
  • 【Go-6】数据结构与集合
  • [网页五子棋][对战模块]处理连接成功,通知玩家就绪,逻辑问题(线程安全,先手判定错误)
  • Spring Boot,注解,@ComponentScan
  • linux驱动开发(1)-内核模块
  • rl_sar功能包详解
  • pyqt5笔记20250601
  • gitflow
  • 《Pytorch深度学习实践》ch2-梯度下降算法
  • 设计模式——状态设计模式(行为型)
  • 设计模式——代理设计模式(结构型)
  • android stdio 的布局属性