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

MSYS2 环境配置与 Python 项目依赖管理笔记

#工作记录

MSYS2 环境配置

安装和更新 MSYS2

初始安装
  1. 下载并安装 MSYS2

    • 访问 MSYS2 官方网站 并下载安装包。

    • 按照安装向导完成安装。

  2. 更新 MSYS2

    • 打开 MSYS2 终端(MSYS2 MINGW64)。

    • 更新包数据库和核心系统包:

      pacman -Syu

    • 关闭终端,重新打开 MSYS2 终端。

    • 更新所有软件包:

      pacman -Su

查看已安装的包

如果我们是通过 pip 安装的 Poetry,那么它不会出现在 MSYS2 的包管理中。
此时,你可以通过以下命令查看 Poetry 的安装路径和版本:

通过这些命令,我们可以获取有关 Python 和 Poetry 的详细信息。

  1. 查看所有已安装的包

    pacman -Q

    这个命令会列出所有已安装的包,包括它们的名称和版本。

  2. 查看手动安装的包

    pacman -Qe

    这个命令会列出所有手动安装的包,不包括作为依赖自动安装的包。

  3. 查看特定包的信息

    pacman -Qi <package_name>
     

    <package_name> 替换为我们想查询的包的名称。

    举例:查看已安装的 Python 和 Poetry 信息

  4. 查看 Python 信息

    pacman -Qi mingw-w64-x86_64-python3

  5. 查看 Poetry 信息

    pacman -Qi mingw-w64-x86_64-python-poetry

  6. 查看 Poetry 安装路径

    which poetry

  7. 查看 Poetry 版本

    poetry --version

  8. 查找特定软件包

    pacman -Qs <keyword>

    <keyword> 替换为我们想搜索的关键词。

  9. 查看可用的更新

    pacman -Qu
     

Python 项目依赖管理

安装 Python 和相关工具

安装 Python
  1. 安装 Python

    pacman -S mingw-w64-x86_64-python3

    • 这个命令安装的是 MSYS2 提供的 Python 3.x 最新适配版本。

    • 注意:这个操作会安装或升级 Python,但不会改变系统中已有的其他 Python 版本。

  2. 验证 Python 安装

    python3 --version

安装 Poetry
  1. 安装 Poetry

    #推荐(统一工具链管理)
    pacman -S mingw-w64-x86_64-python-poetry#备选(不推荐,容易引发依赖冲突)
    curl -sSL https://install.python-poetry.org | python3 -

  2. 验证 Poetry 安装

    poetry --version

安装编译工具链(包括 G++)
  1. 安装编译工具链

    pacman -S base-devel mingw-w64-x86_64-toolchain

    按 回车键 和 Y 键 全部安装 和 确认安装。

    • 这个命令会安装完整的编译工具链,包括 gccg++ 等。

    • 注意:这个操作不会升级 Python 版本。

  2. 验证工具链安装

    gcc --version
    g++ --version

安装 GTK 和其他依赖
  1. 安装 GTK 和其他依赖

    pacman -S mingw-w64-x86_64-gtk3

    • 这个命令会安装 GTK 3 及其相关依赖。

    • 注意:这个操作不会升级 Python 版本。

  2. 验证 GTK 安装

    pkg-config --exists gtk+-3.0 && echo "GTK 3.0 is installed" || echo "GTK 3.0 is not installed"

创建和配置 Poetry 项目

创建新的 Poetry 项目
  1. 创建新的 Poetry 项目

    mkdir my_project
    cd my_project
    poetry init
     

  2. 安装项目依赖

    poetry install
     

  3. 添加依赖

    poetry add numpy
    poetry add aiohttp
     

  4. 手动安装本地包: 如果需要安装本地的 .pkg.tar.zst 包,可以使用以下命令:

    pacman -U /path/to/package.pkg.tar.zst
     

    注意:这个操作不会升级 Python 版本。

修复依赖问题

修复 NumPy 安装问题

  1. 确保安装了 Python 开发库

    pacman -S mingw-w64-x86_64-python3

    • 这个操作会确保 Python 开发库安装或升级到最新版本。

    • 安装后要注意处理该 Python 版本的所有依赖关系。

  2. 手动安装 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 依赖问题

  1. 确保安装了 GTK 和相关库

    pacman -S mingw-w64-x86_64-gtk3

    • 这个操作不会升级 Python 版本。

    • 注意处理相关依赖关系。

  2. 设置环境变量

    • 将 GTK 的路径添加到系统的 PATH 环境变量中,新建一个变量名:

      GTK_BASEPATH

    • 设置 GTK_BASEPATH 环境变量:

      D:\msys64\mingw64

  3. 验证 GTK 安装

    pkg-config --exists gtk+-3.0 && echo "GTK 3.0 is installed" || echo "GTK 3.0 is not installed"

修复其他依赖问题

  1. 查看错误日志: 如果安装过程中遇到错误,查看错误日志以获取更多信息:

    cat /更换为错误输出的显示路径path/to/error/log
     

  2. 使用 --force--legacy-peer-deps: 如果在poetry虚拟环境 npm 安装时遇到依赖冲突,可以尝试以下命令:

    npm install --legacy-peer-deps
     

 

系统维护

清理旧的包文件

  1. 清理旧的包文件

    pacman -Sc
     
    • 这个命令会清理旧的包文件,释放磁盘空间。

    • 清理后注意验证我们所需的关键库是否运行正确。

  2. 确认清理操作

    $ 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...
     

查看磁盘空间

  1. 查看磁盘空间

    df -h

检查系统信息

  1. 查看已安装的包

    pacman -Q | head -n 10  # 查看部分已安装的包

  2. 查看系统版本信息

    uname -a

  3. 查看手动安装的包

    pacman -Qe

  4. 检查是否有包需要重建

    pacman -Qkk

从我的输出来看,pacman -Qkk 命令检查到 MSYS2 系统中有多个包存在文件冲突或损坏的情况。以下是一些解决步骤:

方法一:重新安装冲突的包

对于每个报告冲突的包,尝试重新安装它。例如,对于 ca-certificates 包:

pacman -S --overwrite '*' ca-certificates

对其他冲突的包(如 m4libb2lzo2 等)重复此步骤。

方法二:清理并重新同步包数据库

  1. 清理包缓存

    pacman -Sc

  2. 重新同步包数据库

    pacman -Sy

  3. 进行全面系统升级

    pacman -Su

方法三:手动修复关键包

对于关键包如 ca-certificates,手动修复步骤如下:

  1. 卸载问题包

    pacman -Rsn ca-certificates
     

  2. 重新安装该包

    pacman -S ca-certificates

对其他关键冲突包也执行上述步骤。

方法四:检查文件系统权限

确保 MSYS2 对相关目录具有正确的写入权限:

  • 检查并调整 MSYS2 安装目录(如 D:\msys64)的权限设置,确保你的用户账户拥有完全控制权限。

方法五:联系技术支持

如果上述方法无法解决问题,建议联系 MSYS2 社区或相关论坛寻求帮助。

通过这些步骤,我们应该能够解决文件冲突或损坏的问题。

 

参考资料

  • MSYS2 官方文档

  • Poetry 官方文档

  • NumPy 官方文档

  • GTK 官方文档

通过以上步骤,我们可以有效地配置和管理 MSYS2 环境中的 Python 项目及其依赖。如果在过程中遇到任何问题,可以参考相关文档或在社区中寻求帮助。

http://www.xdnf.cn/news/937459.html

相关文章:

  • Z-FOLD: A Frustratingly Easy Post-Training Quantization Scheme for LLMs
  • MS39531N 是一款正弦驱动的三相无感直流电机驱动器,具有最小振动和高效率的特点
  • 深入理解 Java 的反射、注解与动态代理
  • 基于Python学习《Head First设计模式》第十章 状态模式
  • JavaScript数组扁平化(Array Flattening)全解析:从基础到进阶的9种实现方式及深度对比
  • C++.OpenGL (17/64)深度测试(Depth Testing)
  • Python Wheel 打包基本原理详解
  • LangChain工具集成实战:构建智能问答系统完整指南
  • RoboDK 自定义机器人
  • 当前市场环境下,软件行业的突围之道:技术演进与商业模式重构
  • 工厂方法模式和抽象工厂方法模式的battle
  • 135. 分发糖果
  • 【P2P】直播网络拓扑及编码模式
  • 【2025年6月8日】Claude 4 国内使用全攻略
  • 【优选算法】模拟 问题算法
  • CompletableFuture+线程池使用案列
  • 直观地理解程序的堆和栈
  • Go 语言中的内置运算符
  • LLMs之Structured Output:vLLM 结构化输出指南—从约束生成到自动解析与高效实现
  • 算法工程师认知水平要求总结
  • (javaEE)网络原理-初识 局域网和广域网 ip地址和端口号 协议 五元组 协议分层 OSI七层模型 网络数据通信的基本流程
  • (二)原型模式
  • AI短视频创富营
  • Go语言系统监控实战:gopsutil库全面解析与应用
  • nginx部署
  • K8S认证|CKS题库+答案| 8. 沙箱运行容器 gVisor
  • 安装Openstack
  • 编程技巧(基于STM32)第二章 全功能按键非阻塞式实现按键单击、双击和长按
  • 【agent开发】VS Code连接WSL失败解决
  • 实验一:数据选择器实验