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

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

相关文章:

  • RNN为什么不适合大语言模型
  • html中的table标签以及相关标签
  • ESLint从入门到实战
  • 智净未来:华为智选IAM以科技巧思优化家庭健康饮水体验
  • 2025年中总结
  • Java安全-常规漏洞问题(SQL注入,XXE,SSRF,RCE)
  • Linux系统网络服务之DCHP服务
  • RabbitMQ七种工作模式
  • Kafka入门及实战应用指南
  • 电路图识图基础知识-摇臂钻床识图(三十一)
  • 【学习笔记】2.2 Encoder-Decoder
  • 巧妙解决easyocr在cpu_mode下加载慢的问题~
  • Pandas 核心数据结构详解:Series 和 DataFrame 完全指南
  • MyBatisPlus——逻辑删除
  • import jsonlines ModuleNotFoundError: No module named ‘jsonlines‘
  • 什么是 OpenFeigin ?微服务中的具体使用方式
  • 专业音乐播放器分享,Foobar2000多格式解码的技术实现,界面自定义的实用技巧
  • 【栈】------例题1【铁轨 Rails】
  • react 自定义状态管理库
  • MySQL中的SELECT FOR UPDATE的用法与原理
  • 有百度推广的网站/平台优化是什么意思
  • wordpress找回删除插件/seo百度点击软件
  • 什么软件做网站描述/百度小说
  • 淮安做网站建设的网络公司/整站优化外包服务
  • 企业做网站的公司/武汉排名seo公司
  • 可以上传网站的免费空间/seo网站快速排名外包