pywin32がPython3.9で動かない時の対処法

スポンサーリンク

pywinautoを使ってWindows上の作業を自動化しているのですが、OSをクリーンインストールし直したデスクトップPCで、以前使っていたpythonスクリプトを実行しようとしたところ、「pywin32のライブラリがロードできない」というエラーが出て、実行に失敗しました。

今回はその時行った対処法についてご紹介します。

スポンサーリンク

対象

エラーの原因とも関係しますが、今回の記事は以下のPython3.9をインストールされている方向けの話です。

現象

私の手元ではpywinautoを使ったスクリプトを実行しようとしたとき、以下のようなエラーが出ました。

ImportError: DLL load failed while importing win32ui: A dynamic link library (DLL) initialization routine failed.

win32uiというのはpywin32というPythonからWindows APIを操作するライブラリの一部です。

pywin32がインストールできていないようなので、インストールしてやれば直りそうですが、

pip install pywin32

を実行すると「既にインストールできてるよ!」と言われてしまいました。

原因

pywin32が実行できないと検索すると、色々と記事が出てきますが、今回の場合はPython3.9に含まれるpywin32の特定のバージョン(228)でimport win32uiが正常にできないためエラーが出ているようです。

From the looks of that and the Github pageimport win32ui is actually broken on Python 3.9 using pywin32 build 228. 

StackOverflowより

解決策

pywin32を手動で入れなおしてあげれば問題は解決します。

まず以下ののGithubページからwhlをダウンロードしてください。

CristiFati/Prebuilt-Binaries
Various software built on various platforms. Contribute to CristiFati/Prebuilt-Binaries development by creating an account on GitHub.

ダウンロードしたwhlを以下のコマンドで実行します。

pip install -U --force-reinstall (whlファイル名).whl

まとめ

Python3.9を使っている場合にpywin32の実行ができない場合があります。

その場合はpywin32のwhlを取得し、手動でpywin32をインストールし直しましょう。

コメント

タイトルとURLをコピーしました