MSYS2 环境配置与 Python 项目依赖管理笔记
#工作记录
MSYS2 环境配置
安装和更新 MSYS2
初始安装
-
下载并安装 MSYS2:
-
访问 MSYS2 官方网站 并下载安装包。
-
按照安装向导完成安装。
-
-
更新 MSYS2:
-
打开 MSYS2 终端(
MSYS2 MINGW64
)。 -
更新包数据库和核心系统包:
pacman -Syu
-
关闭终端,重新打开 MSYS2 终端。
-
更新所有软件包:
pacman -Su
-
查看已安装的包
如果我们是通过 pip
安装的 Poetry,那么它不会出现在 MSYS2 的包管理中。
此时,你可以通过以下命令查看 Poetry 的安装路径和版本:
通过这些命令,我们可以获取有关 Python 和 Poetry 的详细信息。
-
查看所有已安装的包:
pacman -Q
这个命令会列出所有已安装的包,包括它们的名称和版本。
-
查看手动安装的包:
pacman -Qe
这个命令会列出所有手动安装的包,不包括作为依赖自动安装的包。
-
查看特定包的信息:
pacman -Qi <package_name>
将
<package_name>
替换为我们想查询的包的名称。举例:查看已安装的 Python 和 Poetry 信息
-
查看 Python 信息:
pacman -Qi mingw-w64-x86_64-python3
-
查看 Poetry 信息:
pacman -Qi mingw-w64-x86_64-python-poetry
-
查看 Poetry 安装路径:
which poetry
-
查看 Poetry 版本:
poetry --version
-
查找特定软件包:
pacman -Qs <keyword>
将
<keyword>
替换为我们想搜索的关键词。
-
查看可用的更新:
pacman -Qu
Python 项目依赖管理
安装 Python 和相关工具
安装 Python
-
安装 Python:
pacman -S mingw-w64-x86_64-python3
-
这个命令安装的是 MSYS2 提供的 Python 3.x 最新适配版本。
-
注意:这个操作会安装或升级 Python,但不会改变系统中已有的其他 Python 版本。
-
-
验证 Python 安装:
python3 --version
安装 Poetry
-
安装 Poetry:
#推荐(统一工具链管理) pacman -S mingw-w64-x86_64-python-poetry#备选(不推荐,容易引发依赖冲突) curl -sSL https://install.python-poetry.org | python3 -
-
验证 Poetry 安装:
poetry --version
安装编译工具链(包括 G++)
-
安装编译工具链:
pacman -S base-devel mingw-w64-x86_64-toolchain
按 回车键 和 Y 键 全部安装 和 确认安装。
-
这个命令会安装完整的编译工具链,包括
gcc
、g++
等。 -
注意:这个操作不会升级 Python 版本。
-
-
验证工具链安装:
gcc --version g++ --version
安装 GTK 和其他依赖
-
安装 GTK 和其他依赖:
pacman -S mingw-w64-x86_64-gtk3
-
这个命令会安装 GTK 3 及其相关依赖。
-
注意:这个操作不会升级 Python 版本。
-
-
验证 GTK 安装:
pkg-config --exists gtk+-3.0 && echo "GTK 3.0 is installed" || echo "GTK 3.0 is not installed"
创建和配置 Poetry 项目
创建新的 Poetry 项目
-
创建新的 Poetry 项目:
mkdir my_project cd my_project poetry init
-
安装项目依赖:
poetry install
-
添加依赖:
poetry add numpy poetry add aiohttp
-
手动安装本地包: 如果需要安装本地的
.pkg.tar.zst
包,可以使用以下命令:pacman -U /path/to/package.pkg.tar.zst
注意:这个操作不会升级 Python 版本。
修复依赖问题
修复 NumPy 安装问题
-
确保安装了 Python 开发库:
pacman -S mingw-w64-x86_64-python3
-
这个操作会确保 Python 开发库安装或升级到最新版本。
-
安装后要注意处理该 Python 版本的所有依赖关系。
-
-
手动安装 NumPy: 如果自动安装失败,可以手动安装 NumPy 的预编译包:
-
下载适合 Windows 的 NumPy 预编译包(通常是
.tar.zst
文件)。 -
根据文件地址,使用 pacman -U 安装:
pacman -U /e/Downloads/mingw-w64-x86_64-python-numpy-2.2.6-1-any.pkg.tar.zst
-
注意:这个操作不会升级 Python 版本。
-
修复 GTK 依赖问题
-
确保安装了 GTK 和相关库:
pacman -S mingw-w64-x86_64-gtk3
-
这个操作不会升级 Python 版本。
-
注意处理相关依赖关系。
-
-
设置环境变量:
-
将 GTK 的路径添加到系统的
PATH
环境变量中,新建一个变量名:GTK_BASEPATH
-
设置
GTK_BASEPATH
环境变量:D:\msys64\mingw64
-
-
验证 GTK 安装:
pkg-config --exists gtk+-3.0 && echo "GTK 3.0 is installed" || echo "GTK 3.0 is not installed"
修复其他依赖问题
-
查看错误日志: 如果安装过程中遇到错误,查看错误日志以获取更多信息:
cat /更换为错误输出的显示路径path/to/error/log
-
使用
--force
或--legacy-peer-deps
: 如果在poetry虚拟环境npm
安装时遇到依赖冲突,可以尝试以下命令:npm install --legacy-peer-deps
系统维护
清理旧的包文件
-
清理旧的包文件:
pacman -Sc
-
这个命令会清理旧的包文件,释放磁盘空间。
-
清理后注意验证我们所需的关键库是否运行正确。
-
-
确认清理操作:
$ pacman -Sc Packages to keep:All locally installed packagesCache directory: /var/cache/pacman/pkg/ :: Do you want to remove all other packages from cache? [Y/n] y removing old packages from cache...Database directory: /var/lib/pacman/ :: Do you want to remove unused repositories? [Y/n] y removing unused sync repositories...
查看磁盘空间
-
查看磁盘空间:
df -h
检查系统信息
-
查看已安装的包:
pacman -Q | head -n 10 # 查看部分已安装的包
-
查看系统版本信息:
uname -a
-
查看手动安装的包:
pacman -Qe
-
检查是否有包需要重建:
pacman -Qkk
从我的输出来看,pacman -Qkk
命令检查到 MSYS2 系统中有多个包存在文件冲突或损坏的情况。以下是一些解决步骤:
方法一:重新安装冲突的包
对于每个报告冲突的包,尝试重新安装它。例如,对于 ca-certificates
包:
pacman -S --overwrite '*' ca-certificates
对其他冲突的包(如 m4
、libb2
、lzo2
等)重复此步骤。
方法二:清理并重新同步包数据库
-
清理包缓存:
pacman -Sc
-
重新同步包数据库:
pacman -Sy
-
进行全面系统升级:
pacman -Su
方法三:手动修复关键包
对于关键包如 ca-certificates
,手动修复步骤如下:
-
卸载问题包:
pacman -Rsn ca-certificates
-
重新安装该包:
pacman -S ca-certificates
对其他关键冲突包也执行上述步骤。
方法四:检查文件系统权限
确保 MSYS2 对相关目录具有正确的写入权限:
-
检查并调整 MSYS2 安装目录(如
D:\msys64
)的权限设置,确保你的用户账户拥有完全控制权限。
方法五:联系技术支持
如果上述方法无法解决问题,建议联系 MSYS2 社区或相关论坛寻求帮助。
通过这些步骤,我们应该能够解决文件冲突或损坏的问题。
参考资料
-
MSYS2 官方文档
-
Poetry 官方文档
-
NumPy 官方文档
-
GTK 官方文档
通过以上步骤,我们可以有效地配置和管理 MSYS2 环境中的 Python 项目及其依赖。如果在过程中遇到任何问题,可以参考相关文档或在社区中寻求帮助。
相关文章:

MSYS2 环境配置与 Python 项目依赖管理笔记
#工作记录 MSYS2 环境配置 安装和更新 MSYS2 初始安装 下载并安装 MSYS2: 访问 MSYS2 官方网站 并下载安装包。 按照安装向导完成安装。 更新 MSYS2: 打开 MSYS2 终端(MSYS2 MINGW64)。 更新包数据库和核心系统包࿱…...
Elasticsearch:spring2.x集成elasticsearch8.x
相关安装就不介绍了直接代码集成 <!-- elasticsearch版本需要和你安装的版本一致 --><properties><elasticsearch.version>8.11.1</elasticsearch.version><jakarta-json.version>2.1.2</jakarta-json.version><logstash.version>7…...

华为云Flexus+DeepSeek征文|华为云一键部署知识库搜索增强版Dify平台,构建智能聊天助手实战指南
目录 前言 1 架构描述 2 资源栈创建流程详解 2.1 选择部署模板 2.2 参数配置内容 2.3 资源栈设置选项 2.4 配置确认与执行方式 3 部署过程与控制台反馈 3.1 实时资源监控 3.2 资源详情与访问路径 3.3 模板与事件管理 4 知识库构建流程 4.1 数据导入操作 4.2 文本…...
gem5-gpu教程 在gem5-gpu上运行多个应用程序
问题一、gem5-gpu是否能够在系统调用仿真中同时运行两个不同的应用程序,一个在CPU上,另一个在gpu上。如果是这样,我该怎么做?我查看了配置和帮助文件,没有找到明确的方法。看起来rodinia基准测试使用CPU在GPU内核中启动工作,CPU内核在GPU执行时几乎处于空闲状态。这里的另…...

分形几何在医学可视化中的应用:从理论到Python实战
分形几何在医学可视化中的应用:从理论到Python实战 前言 分形几何作为描述自然界复杂结构的数学工具,正通过其自相似性和分数维度特性,革新医学影像分析领域。本文系统阐述分形几何在医学影像中的创新应用,涵盖从图像预处理、分…...
四自由度机械臂Simulink仿真设计与实现
四自由度机械臂Simulink仿真设计与实现 摘要 本文详细介绍了基于MATLAB/Simulink的四自由度机械臂建模、仿真与控制实现。通过建立完整的运动学和动力学模型,设计PID控制器,实现轨迹跟踪功能,并利用3D可视化技术进行仿真验证。全文涵盖理论建模、Simulink实现和仿真分析三…...

ESP-Brookesia:融合 AI 大模型,全新一代 GUI 开发与管理平台
乐鑫信息科技 (688018.SH) 推出 ESP-Brookesia ——一款专为物联网设备打造、集成 AI 交互能力的 UI 开发与管理框架。 ESP-Brookesia 深度融合 AI 大模型技术,为智能屏显应用赋予语音识别、自然语言对话、拟人化反馈等能力,帮助开发者构建更智能、更具…...

【MATLAB去噪算法】基于CEEMD联合小波阈值去噪算法(第三期)
02.去噪算法原理 1.引言 传统EMD方法存在模态混叠问题,即信号成分在不同IMF分量中出现碎片化分布。为改进这一问题,Huang等(1999)提出间歇性测试算法,但效果有限。Wu和Huang(2009)发展的集合经…...

机器学习实战37-基于情感字典和机器学习的股市舆情分析可视化系统
文章目录 一、项目背景数字时代情感分析情况二、项目流程1.数据采集与预处理2.复合情感分析模型构建3.舆情分析可视化:三、机器学习算法原理1.支持向量机基础2.核函数与高维映射3.情感分类特征融合4.模型训练与优化四、实现代码五、系统特点与优势1.复合情感分析模型2.多维度可…...
【2025CVPR】模型融合新范式:PLeaS算法详解(基于排列与最小二乘的模型合并技术)
本文深入解析ICLR 2025顶会论文《PLeaS: Merging Models with Permutations and Least Squares》,揭示模型融合领域突破性进展. 一、问题背景:模型合并的核心挑战 随着开源模型的爆发式增长,如何高效合并多个专用模型成为关键挑战。传统方法存在三大痛点: 初始化依赖…...

CAD多面体密堆积3D插件
插件介绍 CAD多面体密堆积3D插件可在AutoCAD内建立三维随机多面体密堆积模型。 插件内置物理动力学模拟算法,通过模拟重力、碰撞等现象,使多面体在虚拟环境中发生自然堆积,进而实现真实的堆积效果。多面体堆积模拟中存在的局部穿模问题可通…...

LLMs 系列科普文(5)
在前文中,我们讲述了什么是基础模型,并重点以 LLaMA 3.1 基础模型为例,向大家演示了它可以做什么,有哪些问题或有趣的现象。 在进入新的主题内容之前,我们再次对 基础模型 做一些总结: 这是一个基于 toke…...

HarmonyOS开发:显示图片功能详解
目录 前言 Image组件基础 1、Image组件概述 2、加载图片资源 3、存档图类型数据源 (1)本地资源 (2)网络资源 (3)Resource资源 (4)媒体库file://data/storage (…...

ORACLE 修改端口号之后无法启动?
Oracle数据库更改端口后出现监听器无法启动的问题确实较为常见,但并非必然发生。这一问题通常源于配置错误或环境冲突,而非端口修改本身。以下是系统性解决方案: 🔍 一、问题根源分析 配置文件语法错误 修…...
Qt Quick Test模块功能及架构
Qt Quick Test 是专门为测试 QML 应用程序设计的模块,在 Qt 6.0 中得到了显著增强。 一、主要功能/使用方法 核心功能概述 QML 单元测试框架 提供完整的 QML 测试环境 支持测试用例组织和执行 包含 QML 断言函数和测试结果收集 测试类型支持 组件功能测试 用…...

Excel自动分列开票工具推荐
软件介绍 本文介绍一款基于Excel VBA开发的自动分列开票工具,可高效处理客户对账单并生成符合要求的发票清单。 软件功能概述 该工具能够将客户对账单按照订单号自动拆分为独立文件,并生成可直接导入发票清单系统的标准化格式。 软件特点 这是一款体…...

Maven入门(够用)
1、Maven是什么? 这个问题非常不重要,或者说不应该上来就问maven是什么,而是直接学习maven怎么用能干什么,学完之后自然就知道了maven是个什么玩意儿,很多技术都是如此。 2、Maven下载 先准备Java环境,安…...
【HarmonyOS 5】 社交行业详解以及 开发案例
HarmonyOS 5通过分布式能力、响应式框架及AI技术,重构社交应用的交互范式,以下是分领域解析: 🧏 一、无障碍社交创新 听障人士实时通讯辅助 语音文字双向转译功能:对方语音实时转为文字显示,用户…...
python版若依框架开发:集成Dash应⽤
python版若依框架开发 从0起步,扬帆起航。 python版若依部署代码生成指南,迅速落地CURD!项目结构解析前端开发规范后端开发规范集成Dash应⽤文章目录 python版若依框架开发后端部分1.安装 Dash2.在 sub_applications 目录下新建 dash_app.py ⽂件3.在 sub_applications/han…...
网盘变硬盘挂载软件:百度 / 阿里 / OneDrive 秒变本地磁盘
各位网盘达人们!今天咱来聊聊超神奇的网盘挂载软件。你知道吗,这玩意儿就像个超级魔法棒,能把远程网盘,像百度网盘、阿里云盘、OneDrive这些,变成咱本地的虚拟磁盘。有了它,咱管理云端文件就跟操作自己家硬…...

自动化办公集成工具:一站式解决文档处理难题
1. 项目概述 在当今信息化时代,办公自动化已成为提升工作效率的关键。本文将详细介绍一款基于Python和PyQt5开发的「自动化办公集成工具」,该工具集成了多种常用的办公文档处理功能,包括批量格式转换、文本智能替换、表格数据清洗等,旨在为用户提供一站式的办公自动化解决方…...

three.js 零基础到入门
three.js 零基础到入门 什么是 three.js为什么使用 three.js使用 Three.js1. 创建场景示例 2.创建相机3. 创建立方体并添加网格地面示例 5. 创建渲染器示例 6. 添加效果(移动/雾/相机跟随物体/背景)自动旋转示例效果 相机自动旋转示例 展示效果 实现由远到近的雾示例展示效果 T…...

PublishSubject、ReplaySubject、BehaviorSubject、AsyncSubject的区别
python容易编辑,因此用pyrx代替rxjava3做演示会比较快捷。 pyrx安装命令: pip install rx 一、Subject(相当于 RxJava 的 PublishSubject) PublishSubject PublishSubject 将对观察者发送订阅后产生的元素,而在订阅前…...

在Ubuntu22.04 系统中安装Docker详细教程
1.更新系统软件包 #确保您的系统软件包是最新的。这有助于避免安装过程中可能遇到的问题 sudo apt update sudo apt upgrade -y2.安装必要的依赖 sudo apt install apt-transport-https ca-certificates curl software-properties-common -y3.替换软件源 echo "deb htt…...
解决transformers.adapters import AdapterConfig 报错的问题
需要安装 Adapter-Hub 的 transformers 分支,不是官方 transformers 库! pip install githttps://github.com/Adapter-Hub/transformers.git✅ 注意:这个命令会从 GitHub 下载源码并安装。你需要确保你的网络可以访问 GitHub,并且…...

AUTOSAR实战教程--DoIP_01_配置项解释
配置项 解释 备注 DoIPChannelSARef 引用DoIP Tester的源地址,就是你在DoIP Tester这个Containter中配置的Tester实例。 DoIPChannelTARef 引用目标地址。就是你在DoIPTargetAddress这个Container中的配置。 DoIPPduRRxPduId 为该pdu设置一个ID用于DoIP…...
湖北理元理律师事务所:法律视角下的债务优化与生活平衡之道
一、债务优化的本质:法律与生活的平衡艺术 债务问题常被视为单纯的财务危机,实则牵涉法律权责界定、还款能力评估、生活保障等多重维度。作为法律服务机构,我们观察到:真正的债务优化需同时满足两个条件: 法律合规性…...

机器人/智能车纯视觉巡线经典策略—滑动窗口+直方图法
作者:SkyXZ CSDN:SkyXZ~-CSDN博客 博客园:SkyXZ - 博客园 在机器人或智能车的自主导航任务中,视觉巡线是一项最为基础且关键的能力之一。通过摄像头实时获取道路图像,并基于图像信息判断行驶路径࿰…...
附加模块--Qt OpenGL模块功能及架构
一、模块功能: 主要变化 Qt OpenGL 模块的分离: 在 Qt 6 中,原来的 Qt OpenGL 功能被拆分为多个模块 传统的 Qt OpenGL 模块 (QGL*) 已被标记为废弃 新的图形架构: Qt 6 引入了基于 QRhi (Qt Rendering Hardware Interface) 的…...

503 Service Unavailable:服务器暂时无法处理请求,可能是超载或维护中如何处理?
处理 "503 Service Unavailable" 错误是服务器管理者面临的常见挑战之一。这种错误通常表示服务器暂时无法处理请求,可能是由于服务器超载、维护中或其他临时性问题导致的。在本文中,我将介绍如何处理 "503 Service Unavailable" 错…...