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?等庫 )。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87866.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87866.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87866.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Python爬蟲實戰:研究Splinter相關技術

1. 引言 1.1 研究背景與意義 隨著 Web 2.0 技術的發展,現代網頁越來越多地采用 JavaScript 動態生成內容。傳統爬蟲通過直接請求 HTML 頁面的方式,無法獲取這些動態渲染的內容,導致爬取數據不完整。據統計,全球前 1000 名網站中,超過 70% 的頁面包含動態加載內容 。Spli…

大氣商務工作匯報總結PPT模版分享

藍色商務工作總結PPT模版,莫蘭迪工作總結PPT模版,年中工作匯報PPT模版,簡約工作匯報PPT模版,上半年工作總結PPT模版,極簡工作匯報PPT模版,歐美簡約PPT模版,大氣商務通用PPT模版,團隊…

5G modem開發

鏈接文章:https://zhuanlan.zhihu.com/p/709130546 OpenHarmony RIL架構 鏈接文章:https://blog.csdn.net/weixin_42571280/article/details/148566029 在移動通信設備中,無線接口層(Radio Interface Layer,簡稱RIL&…

Gartner《AI-Driven Methods for Cost-Efficiency》學習心得

一、背景介紹 在當前經濟形勢下,企業面臨著成本上升與收入增長放緩的雙重壓力。Gartner 的這份報告指出,大多數企業對 AI 的投資主要集中在提升用戶生產力方面,但短期內投資回報率有限。鑒于經濟的不確定性以及成本壓力,尤其是生成式 AI(GenAI)技術,若應用于財務效率和…

人臉識別技術是自動化還是智能化?

人臉識別技術兼具自動化與智能化的雙重特性。它通過自動采集圖像、預處理圖像、提取特征以及進行識別比對等操作,實現了高效且無需人工干預的識別流程,展現出強大的自動化能力。同時,它還具備自適應學習能力,能夠根據新的數據和場…

樹結構的實際應用之堆排序

樹結構的實際應用之堆排序 基本介紹 堆排序是利用堆這種數據結構設計而成的一種排序算法,堆排序是一種選擇排序,它的最壞,最好,平均時間復雜度為O(logn),它也是不穩定排序。堆是具有以下性質的完全二叉樹:…

用OBS Studio錄制WAV音頻,玩轉語音克隆和文本轉語音!

言簡意賅的講解OBS Studio解決的痛點 隨著AI技術的快速發展,語音克隆與文本生成語音技術越來越受歡迎。無論你想要制作個人虛擬主播,還是給自媒體視頻配音,擁有高質量的原始音頻都是關鍵。本文詳細教你使用免費且功能強大的軟件——OBS Stud…

LangChain-5-agent

概述 Agent 是一種能夠基于接收到的輸入,利用自身的決策邏輯和可用的工具,動態地規劃并執行一系列操作,以達成特定任務的程序或系統。它在與外界交互過程中,會根據實時情況靈活調整策略,而不是按照固定的預設流程執行…

操作系統進程與線程核心知識全覽

本博客,根據王道所學。以下為第二章節知識點: 進程的概念、組成、狀態與其轉換、進程間通信、信號; 單/多線程模型、線程管理、調度時機的切換、調度的目標、調度算法、多處理機調度; 同步與互斥、進程互斥的軟硬件實現方法、信號…

C++中類型轉換操作符知識介紹

文章目錄 **一、類型轉換操作符的語法與定義****二、工作原理****三、示例:基本類型轉換****四、示例:轉換為自定義類型****五、與構造函數的對比****六、注意事項****七、應用場景****八、與 C 其他類型轉換的關系****九、總結** 在C中,類型…

2048小游戲C++板來啦!

個人主頁:PingdiGuo_guo 收錄專欄:C干貨專欄 大家好呀,我是PingdiGuo_guo,今天我們來學習如何用C編寫一個2048小游戲。 文章目錄 1.2048的規則 2.步驟實現 2.1: 初始化游戲界面 2.1.1知識點 2.1.2: 創建游戲界面 2.2: 隨機…

TensorFlow深度學習實戰——Transformer變體模型

TensorFlow深度學習實戰——Transformer變體模型 0. 前言1. BERT2. GPT-23. GPT-34. Reformer5. BigBird6. Transformer-XL7. XLNet8. RoBERTa9. ALBERT10. StructBERT11. T5 和 MUM12. ELECTRA13. DeBERTa14. 進化 Transformer 和 MEENA15. LaMDA16. Switch Transformer17. RE…

還原自動駕駛的“前世今生”:用 Python 實現數據記錄與回放系統

還原自動駕駛的“前世今生”:用 Python 實現數據記錄與回放系統 你有沒有想過這樣一個場景: 一輛自動駕駛測試車,在街頭拐了個彎,卻突然急剎。測試員一臉懵,研發團隊問:“數據記錄了嗎?” 他攤攤手:“系統當時沒掛上錄制……” 對不起,重測吧。 這不是段子,而是我在…

access和excel用vba進行輔助辦公軟件開發

1、access用vba創建子窗口child查詢 出現這個報錯的時候,一般是用vba通過ado.connection連接,沒有綁定數據源造成的: 先綁定再使用 Me.Child2.SourceObject "表.資產管理" 連接數據源 Me.Child2.Form.RecordSource strSql …

Nginx+tomcat集群

Nginxtomcat集群 一、Nginx 簡介 1.1 定義 Nginx 是一個高性能的 HTTP 和反向代理 web 服務器,同時支持 IMAP/POP3/SMTP 服務。由俄羅斯工程師伊戈爾?賽索耶夫開發,于 2004 年首次公開發布,基于 BSD-like 協議,代碼開源且免費…

RPC - 客戶端注冊和發現模塊

registryMethod 函數詳解: 函數目的 registryMethod 是 Provider 類的核心方法,用于向服務注冊中心注冊服務。注冊成功后,服務注冊中心會更新內部的服務映射表,建立服務名稱到提供者地址的映射關系。 執行流程示例 場景: 多米…

leetcode332.重新安排行程:優先隊列與DFS實現歐拉路徑的行程規劃

一、題目深度解析與行程規劃本質 題目描述 給定一個機票的字符串二維數組 tickets,每個元素是 [from, to] 的形式,表示從 from 到 to 的機票。要求找出從 JFK 出發的行程,且必須使用所有機票,若存在多種可能的行程,返…

1.21SQLCipher 簡介

SQLCipher 是一個基于 SQLite 的擴展,提供了透明的數據庫加密功能。與普通 SQLite 不同,SQLCipher 在數據寫入磁盤前自動加密,讀取時自動解密,無需開發者手動處理加密邏輯。這使得它非常適合移動應用、桌面應用等需要本地數據加密…

無人機不再“盲飛”!用Python搞定實時目標識別與跟蹤

友友們好! 我是Echo_Wish,我的的新專欄《Python進階》以及《Python!實戰!》正式啟動啦!這是專為那些渴望提升Python技能的朋友們量身打造的專欄,無論你是已經有一定基礎的開發者,還是希望深入挖掘Python潛力的愛好者,這里都將是你不可錯過的寶藏。 在這個專欄中,你將會…

Vue-7-前端框架Vue之應用基礎從Vue2語法到Vue3語法的演變

文章目錄 1 基于vite創建1.1 對比webpack和vite1.2 創建工程1.3 啟動項目2 調試工具Vue.js Devtools3 src結構3.1 index.html3.2 main.ts3.3 App.vue(根組件)4 示例(Vue2的語法)4.1 Person.vue4.2 App.vue4.3 選項式API對比組合式API4.4 程序流程5 示例(Vue3的語法)5.1 setup概…