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 等库 )。

相关推荐
十六点五3 小时前
Java NIO的底层原理
java·开发语言·python
网易伏羲3 小时前
网易伏羲亮相Arm Unlocked 2025,携手Arm探索中国人工智能创新之路
人工智能·游戏ai·网易伏羲
跟橙姐学代码3 小时前
不要再用 print() 了!Python logging 库才是调试的终极武器
前端·python
寒月霜华3 小时前
机器学习ML-简介、数据获取、网页数据抓取
人工智能·机器学习
用户31187945592183 小时前
Tomcat Connectors 1.2.37 源码编译安装教程(mod_jk 详细步骤)附安装包
windows
抓饼先生3 小时前
C++ 20 视图view笔记
linux·开发语言·c++·笔记·c++20
程序猿阿伟3 小时前
《AI游戏开发中的隐性困境:从战斗策略失效到音效错位的深度破局》
人工智能
Olrookie4 小时前
ruoyi-vue(十四)——前端框架及package.json,vite.config.js, main.js文件介绍
前端·笔记
临风.4 小时前
使用Pycharm进行远程ssh(以Featurize为例)
ide·pycharm·ssh·featurize
gooxi_hui4 小时前
8卡直连,Turin加持!国鑫8U8卡服务器让生成式AI落地更近一步
大数据·人工智能