Tan Shuai

Electron 構建工具 ERROR Error: Failed to run "choco install pywin32 --yes"

軟體開發

當使用 Electron Build Tools 時,您可能會遇到與通過 Chocolatey 安裝 pywin32 相關的錯誤。這可能會令人沮喪,尤其是當它是您的專案所需的依賴項時。以下是關於此問題的詳細說明及解決步驟。

錯誤

在使用 Electron Build Tools 初始化 Electron 專案時,您可能會看到以下錯誤訊息:

E:\\>e init main-testing -i testing --root=e:/src/electron
WARN A fixable error has occurred
--> A required dependency "pywin32" could not be located, it probably has to be installed.
Do you want build-tools to try fix this for you? [y/n]: y

Running "choco install pywin32 --yes"
ERROR Error: Failed to run "choco install pywin32 --yes"
    at spawnSyncWithLog (C:\\Users\\zeeis\\.electron_build_tools\\src\\utils\\deps-check.js:11:11)
    at fix (C:\\Users\\zeeis\\.electron_build_tools\\src\\utils\\deps-check.js:39:9)
    at maybeAutoFix (C:\\Users\\zeeis\\.electron_build_tools\\src\\utils\\maybe-auto-fix.js:13:3)
    at whichAndFix (C:\\Users\\zeeis\\.electron_build_tools\\src\\utils\\which.js:10:5)
    at checkPlatformDependencies (C:\\Users\\zeeis\\.electron_build_tools\\src\\utils\\deps-check.js:61:7)
    at Object.<anonymous> (C:\\Users\\zeeis\\.electron_build_tools\\src\\e-init.js:165:3)
    at Module._compile (internal/modules/cjs/loader.js:1072:14)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:1101:10)
    at Module.load (internal/modules/cjs/loader.js:937:32)
    at Function.Module._load (internal/modules/cjs/loader.js:778:12)

此錯誤通常是由於 pywin32 套件的安裝腳本無法在遠端伺服器上找到所需的文件。這導致了 404 錯誤,表明該文件在指定的 URL 上不可用。

理解錯誤

錯誤訊息的關鍵部分是:

ERROR: The remote file either doesn't exist, is unauthorized, or is forbidden for url 'http://sourceforge.net/projects/pywin32/files/pywin32/Build%20219/pywin32-219.win-amd64-py3.9.exe/download'. Exception calling "GetResponse" with "0" argument(s): "The remote server returned an error: (404) Not Found."

這表示 pywin32 的下載 URL 不再有效,這意味著 Chocolatey 無法檢索所需的安裝文件。

### 疑難排解步驟

以下是一些解決此問題的步驟:

#### 1. 驗證 Chocolatey 安裝

確保 Chocolatey 安裝正確並更新至最新版本。您可以使用以下命令檢查 Chocolatey 版本:

```bash
choco --version

要更新 Chocolatey,使用:

choco upgrade chocolatey

2. 手動安裝 pywin32

由於自動安裝失敗,嘗試手動安裝 pywin32。您可以從官方 pywin32 GitHub 發行頁面下載適當的版本並手動安裝。

3. 修改安裝腳本

如果您可以控制 Electron Build Tools 腳本,您可以將其修改為指向有效的 pywin32 URL 或處理手動安裝過程。

4. 使用替代的包管理器

如果 Chocolatey 繼續失敗,考慮使用其他包管理器,如 pip 來安裝 Python 包:

pip install pywin32

手動安裝 pywin32 的示例

  1. 官方 GitHub 發行頁面下載適當的 pywin32 安裝程序。
  2. 運行安裝程序並按照安裝說明進行操作。
  3. 通過運行簡單的 Python 腳本來驗證安裝:
import win32api
print(win32api.GetVersionEx())

遇到 "Failed to run choco install pywin32 --yes" 錯誤可能會阻礙您的開發過程。然而,通過了解根本原因並按照上述步驟操作,您可以克服這個問題,繼續進行您的 Electron 項目設置。