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 继续失败,考虑使用其他包管理器,例如用于 Python 包的 pip:
pip install pywin32
手动安装 pywin32 示例
- 从官方 GitHub 发布页面下载相应的 pywin32 安装程序。
- 运行安装程序并按照安装说明进行操作。
- 通过运行一个导入 pywin32 的简单 Python 脚本来验证安装:
import win32api
print(win32api.GetVersionEx())
遇到“Failed to run choco install pywin32 --yes
”错误可能会成为您开发过程中的一个障碍。然而,通过了解根本原因并按照上述步骤操作,您可以克服此问题,继续进行 Electron 项目设置。