当前位置: 首页 > 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 项目及其依赖。如果在过程中遇到任何问题,可以参考相关文档或在社区中寻求帮助。

相关文章:

  • android计算器代码
  • typeof运算符 +unll和undefined的区别
  • 树状数组学习笔记
  • 人工智能学习07-函数
  • MATLAB遍历生成20到1000个节点的无线通信网络拓扑推理数据
  • 动态模块加载的响应式架构:从零到一的企业级实战指南
  • 量化面试绿皮书:7. 100的阶乘中有多少个尾随零
  • 《PyTorch深度学习入门》
  • 05.查询表
  • 探索双曲函数:从定义到MATLAB可视化
  • 【CATIA的二次开发23】抽象对象Document涉及文档激活控制的方法
  • 深入​剖析网络IO复用
  • 一文掌握 Tombola 抽象基类的自动化子类测试策略
  • 工作邮箱收到钓鱼邮件,点了链接进去无法访问,会有什么问题吗?
  • github开源协议选择
  • ESP32 在Arduino开发环境中,如果程序运行报错如何定位程序报错是哪行代码
  • Python爬虫实战:研究demiurge框架相关技术
  • 机器学习模型选择指南:从问题到解决方案
  • cpp自学 day26(智能指针)
  • Linux中《进程控制》详细介绍
  • 咖啡网站源码/中国十大营销策划机构
  • 设计师常备设计网站大全/在哪里找软件开发公司
  • 做数学题的网站/如何推广软件
  • 包头网站设计推广/旺道seo推广有用吗
  • 最新手机网站推荐/网络推广方法怎么做
  • 那个网站教宝妈做辅食/郑州网络推广报价