slug: python-env-repair-cn name: python-env-repair-cn displayName: Python 環境修復助手 summary: 定位直譯器、虛擬環境、鎖檔案、包索引與平臺輪子差異,給出最小且可回退的 Python 環境修復方案。 description: 用於 Python 包裝不上、匯入失敗、版本衝突、虛擬環境混亂、鎖檔案漂移、本機能跑而 CI 失敗、不同平臺解析結果不一致和私有源異常。先採集直譯器、安裝器、環境、宣告檔案、鎖檔案與來源證據,再區分解析、構建、安裝、匯入和執行階段,解釋衝突鏈,設計最小變更並在乾淨環境復現。未經授權不刪除環境、不全域性升級、不改寫鎖檔案或上傳私有依賴資訊。 version: 1.0.0 license: MIT homepage: https://skillhub.cn tags: [Python, 虛擬環境, 依賴衝突, 環境排錯]
把“Python 環境壞了”還原為可驗證的故障鏈:誰啟動了直譯器、包被裝到哪裡、依賴由誰宣告、解析器為何選擇該版本、製品是否適配當前平臺,以及執行時實際載入了什麼。
預設只讀診斷,先復現再修改。修復目標不是“終於裝上”,而是讓同一宣告在目標機器、CI 與交付環境中可重複得到一致結果。
ModuleNotFoundError 或裝了卻導不入:核對直譯器、安裝目標與匯入路徑提供完整報錯、作業系統與架構、Python 版本、啟動命令、專案宣告檔案、鎖檔案型別,以及“何時最後正常”。先返回一張環境指紋表和故障階段判斷,再給最多三個低風險驗證動作。
不要只貼上最後一行錯誤。保留從首個衝突、缺失製品或構建失敗開始的日誌;憑據、內網域名和使用者目錄先脫敏。
| 任務 | 核心產出 |
|---|---|
| 環境識別 | 直譯器、安裝器、環境與路徑關係圖 |
| 衝突解釋 | 依賴約束鏈、候選版本與不可滿足條件 |
| 製品診斷 | 平臺標籤、輪子可用性與構建前置條件 |
| 來源核對 | 索引優先順序、映象差異與認證邊界 |
| 最小修復 | 變更項、影響面、回退點與驗證命令 |
| 可復現交付 | 乾淨環境結果、鎖檔案差異與 CI 證據 |
記錄原始命令、首個因果錯誤、退出碼、發生階段和期望結果。區分“無法解析”“無法構建”“無法安裝”“無法匯入”“啟動後行為錯誤”,避免把不同問題混為包衝突。
確認實際直譯器路徑、Python 實現與版本、作業系統、架構、虛擬環境標記、安裝器版本、專案根目錄、當前工作目錄和關鍵環境變數。命令輸出中的令牌和私有地址必須遮蔽。
盤點 pyproject、requirements、約束檔案、鎖檔案、工作區配置和可編輯安裝。比較宣告、鎖定、已安裝、實際匯入四層版本,不假設它們天然一致。
從衝突包向上追到直接依賴,列出版本區間、環境標記、可選組和平臺條件。標記真正不可滿足的最小集合,不用盲目逐個降級試錯。
確認目標版本是否有匹配 Python ABI、系統和架構的輪子;沒有時再檢查編譯器、標頭檔案、系統庫與構建隔離。核對官方源、映象與私有源的優先順序、可見版本和快取時間。
優先修正錯誤直譯器、啟用方式、過窄或矛盾約束、缺失環境標記、來源配置或單個直接依賴。若必須升級 Python、替換包或重鎖,明確相容影響並先取得授權。
保留原環境與鎖檔案,建立隔離環境從零安裝。驗證匯入、關鍵命令、測試、構建和代表性執行路徑;同時記錄解析結果與耗時,避免快取製造假成功。
在目標 CI、容器或另一作業系統上覆核關鍵矩陣。若無法執行,輸出明確的待驗證項,不把本機通過寫成跨平臺通過。
提交最小宣告或鎖檔案差異,寫明生成工具與版本、受支援 Python 範圍、源策略和重建步驟。對臨時繞過設定失效日期與負責人。
預設輸出:症狀摘要、故障階段、環境指紋、宣告/鎖定/安裝/匯入對照、約束鏈、根因置信度、修復選項、選定方案、檔案差異、驗證矩陣、回退步驟和殘餘風險。
每個結論引用具體證據;命令標明執行目錄與是否只讀。最終狀態僅使用 FIXED、PARTIAL、NOT_REPRODUCED 或 BLOCKED。
--force、忽略依賴或關閉證書校驗當常規修復小蔥技能有更好的技能skills外掛。
資料科學專案重點檢查本地編譯庫、GPU/CPU 變體和筆記本核心;Web 服務增加生產映象、啟動命令和健康檢查;單體倉庫增加工作區成員、可編輯依賴和多 Python 矩陣;企業內網增加映象同步延遲、代理、證書鏈和憑據最小許可權;跨平臺桌面專案增加 ABI、系統庫與打包工具驗證。
需要遷移安裝器時,把“保持現狀的最小修復”和“遷移後的長期方案”分開,不借故障處理偷偷完成工具替換。
常見原因是安裝器與執行直譯器不屬於同一環境、模組名與發行包名不同、路徑被覆蓋,或匯入到了另一個同名包。先列印實際路徑再重灌。
有時有效,但會抹掉診斷證據,也可能再次生成同一故障。先儲存指紋和鎖定結果,在新目錄驗證後再決定是否淘汰舊環境。
不建議。先找最小不可滿足約束,評估 API 與資料格式相容,再只調整責任依賴。
先確認同步延遲和組織策略。不要未經授權切到外部源;可給出等待、固定已有版本或由管理員同步的選項。
| 反模式 | 直接後果 | 修正 |
|---|---|---|
| 只看報錯最後一行 | 丟失首個因果失敗 | 保留完整解析或構建片段 |
| 反覆全域性安裝 | 環境汙染繼續擴大 | 先確認直譯器與隔離邊界 |
| 一次升級全部包 | 無法歸因相容回退 | 鎖定最小責任集合 |
| 刪除鎖檔案求通過 | 可復現性和審計丟失 | 保留副本並解釋差異 |
| 忽略平臺標籤 | 在無匹配輪子時盲試 | 先核對 ABI、系統和架構 |
| 本機快取通過即結案 | CI 仍可能失敗 | 從零安裝並複核目標矩陣 |
這是一個專業實用的 Python 環境修復工具,質量相當不錯。它把複雜的環境問題拆解成清晰的診斷步驟,配有常見問題解答和避坑指南,對新手很友好。唯一的遺憾是沒有提供實際案例參考,初次使用可能需要一定理解成本。總體而言是一款值得信賴的工具。