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 page,
StackOverflowよりimport win32ui
is actually broken on Python 3.9 using pywin32 build 228.
解決策
pywin32を手動で入れなおしてあげれば問題は解決します。
まず以下ののGithubページからwhlをダウンロードしてください。
ダウンロードしたwhlを以下のコマンドで実行します。
pip install -U --force-reinstall (whlファイル名).whl
まとめ
Python3.9を使っている場合にpywin32の実行ができない場合があります。
その場合はpywin32のwhlを取得し、手動でpywin32をインストールし直しましょう。
コメント