MSYS2 环境下 Python 开发配置(结合 PyCharm)使用笔记

【笔记】MSYS2 的 MinGW64 环境中正确安装 Python 相关环境管理工具 (Poetry、Virtualenv、Pipenv 和 UV)-CSDN博客

MSYS2 环境配置与 Python 项目依赖管理笔记_msys更新python-CSDN博客

【技术笔记】MSYS2 指定 Python 版本安装方案_pacman -u 安装指定版本-CSDN博客

一、环境基础架构

MSYS2 环境概览

工具路径查找方式:

复制代码
where python
where poetry
where virtualenv
where pipenv
where uv

工具路径树

复制代码
└─ MSYS2 环境(D:\msys64\mingw64)  
   └─ Python 3.11 环境(当前实际版本,以 PyCharm 识别为准 )  
      ├─ 核心可执行文件  
      │  └─ python.exe: D:\msys64\mingw64\bin\python.exe  
      ├─ 工具集路径: D:\msys64\mingw64\bin\  
      │  ├─ poetry.exe: D:\msys64\mingw64\bin\poetry.exe  
      │  ├─ virtualenv.exe: D:\msys64\mingw64\bin\virtualenv.exe  
      │  ├─ pipenv.exe: D:\msys64\mingw64\bin\pipenv.exe  
      │  └─ uv.exe: D:\msys64\mingw64\bin\uv.exe  
      ├─ PyCharm 关联配置  
      │  └─ 解释器路径: D:\msys64\mingw64\bin\python.exe  
      └─ 终端命令示例(MSYS2 终端或 cmd/PowerShell 需补全路径)  
         ├─ poetry: "D:\msys64\mingw64\bin\poetry.exe" init  
         ├─ virtualenv: "D:\msys64\mingw64\bin\python.exe" -m virtualenv .venv  
         ├─ pipenv: "D:\msys64\mingw64\bin\pipenv.exe" install requests  
         └─ uv: "D:\msys64\mingw64\bin\uv.exe" new .venv  

二、PyCharm 配置流程(以 Poetry 环境为例)

1. 打开 "添加 Python 解释器" 界面

  • 路径 :PyCharm 顶部菜单 → 文件设置(Windows/Linux:Ctrl + Alt + S;Mac:Command + ,) → 项目: [你的项目名]Python 解释器 → 点击右上角 齿轮图标添加

2. 选择环境类型与基础配置

  • 环境 :选 生成新的(若已有 Poetry 环境可选 选择现有 直接关联)
  • 类型 :下拉选择 Poetry
  • 基础 Python :点击文件夹图标,导航到 D:\msys64\mingw64\bin\python.exe 并选中(PyCharm 会自动识别版本,如截图中 Python 3.11 )
  • poetry 的路径 :手动输入或通过文件夹图标选择 D:\msys64\mingw64\bin\poetry.exe
  • 可选配置 :勾选 创建项目内环境(Poetry 会在项目根目录生成 .venv 虚拟环境 )

3. 确认创建

点击 确定,PyCharm 会自动调用 Poetry 初始化环境(执行类似 poetry env use D:\msys64\mingw64\bin\python.exe 命令),等待环境构建完成即可开始开发。

三、关键注意事项

1. 版本与路径匹配

  • PyCharm 识别的 Python 版本(如截图中 3.11 )需与 MSYS2 中实际安装版本对应,可通过 D:\msys64\mingw64\bin\python.exe --version 终端命令确认实际版本。
  • 工具路径(如 poetry.exe )务必指向 MSYS2 的 mingw64\bin 目录,避免调用系统其他环境的工具引发冲突。

2. 终端环境差异

  • MSYS2 终端 :可直接使用 poetry virtualenv 等命令(因 D:\msys64\mingw64\bin 已加入环境变量 PATH )。
  • Windows 原生终端(cmd/PowerShell) :需用完整路径调用工具(如 "D:\msys64\mingw64\bin\poetry.exe" init ),或手动将 D:\msys64\mingw64\bin 加入系统环境变量 PATH

3. 虚拟环境管理

  • 若勾选 创建项目内环境,Poetry 会在项目目录生成 .venv ,PyCharm 自动关联该虚拟环境;后续依赖安装用 poetry add [依赖名] 更贴合环境管理。
  • 如需切换虚拟环境,重复 "添加 Python 解释器" 流程,选择对应环境目录(如 .venv\Scripts\python.exe )即可。

四、常见问题解决

1. "poetry 路径无效" 报错

  • 检查路径是否包含空格、中文,确保为 D:\msys64\mingw64\bin\poetry.exe 纯英文路径。
  • 尝试重新安装 Poetry:在 MSYS2 终端执行 pacman -S mingw-w64-x86_64-python-poetry 修复工具。

2. 虚拟环境创建失败

  • 确认 MSYS2 中 python.exe 可正常运行(终端执行 D:\msys64\mingw64\bin\python.exe --version 无报错 )。
  • 关闭 PyCharm ,在 MSYS2 终端手动执行 poetry init 初始化项目,再重新关联解释器。

3. 依赖安装慢 / 失败

  • 为 Poetry 配置国内源:在项目目录 pyproject.toml 同级创建 poetry.toml ,写入:

    toml

    复制代码
    [tool.poetry.source]
    name = "douban"
    url = "https://pypi.doubanio.com/simple/"
    default = true
  • 或改用 uv 加速:在 MSYS2 终端执行 uv pip install [依赖名] ,再通过 uv sync 同步到 Poetry 环境(需确保 uv 已正确安装 )。

五、编译工具链安装命令说明

命令作用

复制代码
pacman -S --needed \  
mingw-w64-x86_64-gcc \  
mingw-w64-x86_64-cmake \  
mingw-w64-x86_64-rust \  
mingw-w64-x86_64-zlib \  
mingw-w64-x86_64-python-cffi \  
base-devel

该命令用于在 MSYS2 环境中安装编译工具链及依赖 ,解决涉及 C/C++ 编译的 Python 库(如 cffi numpy 等)安装问题,具体组件说明:

  • mingw-w64-x86_64-gcc:GCC 编译器,用于编译 C/C++ 代码
  • mingw-w64-x86_64-cmake:跨平台构建工具,辅助编译复杂项目
  • mingw-w64-x86_64-rust:Rust 编译器(部分 Python 库可能依赖 Rust 编写的组件)
  • mingw-w64-x86_64-zlib:压缩库,为依赖提供基础支持
  • mingw-w64-x86_64-python-cffi:Python 与 C 交互的接口库,很多编译型依赖需其支持
  • base-devel:基础开发工具集,包含 make autoconf 等必备编译工具

使用场景

当安装 Python 库时遇到编译错误 (如 error: subprocess-exited-with-error 且涉及 gcc cffi 等关键词),或开发需编译自定义 C 扩展的项目时,在 MSYS2 终端 执行此命令安装依赖,可解决大部分编译环境缺失问题。

执行方式

  1. 打开 MSYS2 终端(确保已启动 Mingw64 环境)
  2. 粘贴命令并回车,根据提示输入 y 确认安装

补充说明

  • 若执行命令时报 target not found 错误,先执行 pacman -Syu 更新 MSYS2 包数据库,再重新尝试安装
  • 安装完成后,可通过 gcc --version cmake --version 等命令验证工具是否正常可用

通过以上步骤,可完成 MSYS2 环境与 PyCharm 的深度整合,利用 Poetry 等工具高效管理 Python 项目依赖与虚拟环境,适配 Windows 下的 C/C++ 编译需求(依托 MSYS2 工具链 ),适合开发需编译依赖的 Python 项目(如涉及 cffi numpy 等库 )。

相关推荐
晨曦5432108 分钟前
Flask入门指南:从零构建Python微服务
python·学习·flask
猫头虎-人工智能15 分钟前
数学基础(线性代数、概率统计、微积分)缺乏导致概念难以理解问题大全
人工智能·opencv·线性代数·机器学习·计算机视觉·数据挖掘·语音识别
jndingxin16 分钟前
OpenCV CUDA模块设备层-----用于CUDA 纹理内存(Texture Memory)的封装类cv::cudev::Texture
人工智能·opencv·webpack
神仙别闹21 分钟前
基于Python实现自然语言处理(主题层次的情感分类)
python·自然语言处理·分类
网小鱼的学习笔记29 分钟前
html中的table标签以及相关标签
开发语言·前端·python·html
安达发36 分钟前
安达发|旅游经济“爆发“!APS软件调整旅行箱生产线收割旅游市场!
大数据·人工智能·物联网·aps排产软件·智能优化排产软件·aps智能优化排程软件
爱上妖精的尾巴1 小时前
3-18 WPS JS宏 颜色设置实例应用(按条件设置单元格颜色)学习笔记
javascript·笔记·学习·excel·wps·js宏·jsa
achene_ql1 小时前
OpenCV C++ 图像处理教程:灰度变换与直方图分析
c++·图像处理·人工智能·opencv·计算机视觉
大然Ryan1 小时前
MCP实战:从零开始写基于 Python 的 MCP 服务(附源码)
python·llm·mcp
mortimer2 小时前
当PySide6遇上ModelScope:一场关于 paraformer-zh is not registered 的调试旅程
人工智能·github·阿里巴巴