Electron Build Tools エラー Error: Failed to run "choco install pywin32 --yes"
- Tan Shuai
- Software Development
- 08 Sep, 2021
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パッケージのインストールスクリプトがリモートサーバー上の必要なファイルを見つけられないために発生します。これにより、指定されたURLでファイルが利用できないことを示す404エラーが発生します。
エラーの理解
エラーメッセージの重要な部分は次のとおりです:
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インストーラーをダウンロードします。
- インストーラーを実行し、インストール手順に従います。
- 簡単なPythonスクリプトを実行して、pywin32のインストールを確認します:
import win32api
print(win32api.GetVersionEx())
「choco install pywin32 --yes
を実行できませんでした」というエラーに遭遇すると、開発プロセスが妨げられることがあります。しかし、根本的な原因を理解し、上記の手順に従うことで、この問題を克服し、Electronプロジェクトのセットアップを続けることができます。