★悩み★
・PyAutoGUIのプログラムを実行したけど異常終了して動かない。
・ModuleNotFoundError: No module named ‘pyautogui’エラーの原因は?
・ModuleNotFoundError: No module named ‘pyautogui’を解決したい。
こういった「悩み」に答えます。
★本記事の内容★
① PyAutoGUIとは
➁ No module named ‘pyautogui’が発生した経緯
➂ No module named ‘pyautogui’が発生する原因
④ No module named ‘pyautogui’を解決する手順
本記事を実践したことで、5分くらいで「ModuleNotFoundError: No module named ‘pyautogui’」のエラーを解決できました。
記事の前半では「PyAutoGUIとは?」や「No module named ‘pyautogui’の発生経緯」を解説します。
記事の後半では「No module named ‘pyautogui’の発生原因」から「解決する方法」までを紹介します。
この記事を読み終えることで、「エラーで動かないPyAutoGUIを解消し、動く状態」になるはずです。
PyAutoGUIとは?
「PyAutoGUIとは?」/「特徴」/「ユースケース(利用場面)」に関しては、以下の記事をご覧ください。
>> 【要点】PyAutoGUIとは?初心者向けに特徴から使い方までを図解
また、PyAutoGUIのインストール方法に関しては、以下の記事をご覧ください。
>> 【最短5分】PyAutoGUIをWindowsにインストールする手順
>> 【最短5分】UbuntuにPyAutoGUIをインストールする手順
>> 【最短5分】MacにPyAutoGUIをインストールする手順
ウェブブラウザなどの画面操作を自動化をしたい場合、PyAutoGUIを使って無料で実現できます。
続いて、PyAutoGUIを使っているとよく発生する「No module named ‘pyautogui’」に関して紹介しますね。
No module named ‘pyautogui’が発生した経緯
「No module named ‘pyautogui’が発生した経緯」に関して解説します。
本事象が発生した当時は、納期が近く、「数時間前までは発生しなかったのになぜ?」と思いつつ、慌てふためいた記憶があります。
筆者は、以下のようなPythonプログラムをWindows上で実行しようと考えていました。
# -*- coding: utf-8 -*-
from cmath import e
import pyautogui as pag
from time import sleep
import subprocess
import pyperclip
### Main
## Chromeをシークレットモードで起動する
chrome_path = r"chrome.exe"
subprocess.Popen(['start', chrome_path, '--incognito'], shell=True)
sleep(2)
## Google検索をする
pag.hotkey('ctrl', "e")
sleep(2)
pag.hotkey('ctrl', "a")
sleep(2)
pyperclip.copy('駆け出し物語')
pag.hotkey("ctrl", "v")
sleep(2)
pag.press("enter")
print("WindowsにインストールしたPyAutoGUIでGoogle検索を実施しました。")
ちなみに、上に記載したPyAutoGUIを使ったプログラムの詳細を知りたい方には、以下の記事がオススメです。
>> 【最短5分】PyAutoGUIをWindowsにインストールする手順
上記プログラムを「pyautogui-test.py」と保存しました。
保存したプログラムを実行するために、以下のコマンドを実行したところ、「ModuleNotFoundError: No module named ‘pyautogui’」が発生しました。
python pyautogui-test.py
Traceback (most recent call last):
File "C:\Users\user\Desktop\work\pyautogui-test", line 1, in <module>
import pyautogui
ModuleNotFoundError: No module named 'pyautogui'
本事象は、以下の日時と環境で発生しました。
動作確認済み日時:2022年9月13日
動作確認済み環境:
・CentOS Linux release 7.7.1908 (Core)
・Windows 11 pro
以上が、「No module named ‘pyautogui’が発生した経緯」となります。
No module named ‘pyautogui’が発生する原因
「No module named ‘pyautogui’が発生する原因」に関して解説します。
No module named ‘pyautogui’が発生する原因としては、「実行したプログラムからPyAutoGUIモジュールを参照できない」となります。
本事象(ModuleNotFoundError: No module named ‘pyautogui’)が発生する原因は、以下となります。
★ModuleNotFoundError: No module named ‘pyautogui’の発生原因★
エラーの意味:
「pyautoguiというモジュールが見つからない」です。
エラー箇所:
import pyautogui部分でエラーを引き起こしています。
原因:
プログラムから「PyAutoGUIモジュールを参照できない」ためです。
参照できない理由としては、主に以下が考えられます。
・PyAutoGUIがインストールされていない
・PyAutoGUIのインストール先を参照できていない
以上が、「No module named ‘pyautogui’が発生する原因」となります。
No module named ‘pyautogui’を解決する手順
「No module named ‘pyautogui’を解決する手順」に関してご紹介します。
★解決方法★
方法1:PyAutoGUIがインストールされていることを確認
方法2:Pythonプログラムが参照するモジュールのPATHを確認
以降で、上記手順の各項目に関してご説明します。
方法1:PyAutoGUIがインストールされていることを確認
「方法1:PyAutoGUIがインストールされていることを確認」に関して説明します。
そもそもPyAutoGUIがインストールされているかを確認しましょう。
PyAutoGUIがインストールされていることを確認するために、以下のコマンドを実行してください。
C:\Users\user\Desktop\work\pyautogui>pip show pyautogui
Name: PyAutoGUI
Version: 0.9.53
Summary: PyAutoGUI lets Python control the mouse and keyboard, and other GUI automation tasks. For Windows, macOS, and Linux, on Python 3 and 2.
Home-page: https://github.com/asweigart/pyautogui
Author: Al Sweigart
Author-email: al@inventwithpython.com
License: BSD
Location: c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages
Requires: mouseinfo, pygetwindow, pymsgbox, pyscreeze, PyTweening
Required-by:
C:\Users\user\Desktop\work\tmp\pyautogui>
コマンド実行後、「Location行にPATHが表示された」場合、「PyAutoGUIがインストールされている」と判断できます。
ちなみに、PyAutoGUIのインストール方法に関しては、以下の記事をご覧ください。
>> 【最短5分】PyAutoGUIをWindowsにインストールする手順
>> 【最短5分】UbuntuにPyAutoGUIをインストールする手順
>> 【最短5分】MacにPyAutoGUIをインストールする手順
Location行にPATHが表示されているが、「ModuleNotFoundError: No module named ‘pyautogui’」が出力される場合は、次の「方法2」を試してください。
方法2:Pythonプログラムが参照するモジュールのPATHを確認
「方法2:Pythonプログラムが参照するモジュールのPATHを確認」に関して解説します。
PyAutoGUIモジュールがインストールされたPATHをPythonプログラムから参照できているかを確認しましょう。
Pythonプログラムの冒頭に、以下の処理を追加してください。
import sys # 追加
print(sys.path) # 追加
import pyautogui
追加後、Pythonプログラムを実行します。
C:\Users\user\Desktop\work\pyautogui>python pyautogui-test.py
['C:\\Users\\user\\Desktop\\work\\pyautogui', 'C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.1776.0_x64__qbz5n2kfra8p0\\python310.zip', 'C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.1776.0_x64__qbz5n2kfra8p0\\DLLs', 'C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.1776.0_x64__qbz5n2kfra8p0\\lib', 'C:\\Users\\user\\AppData\\Local\\Microsoft\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0', 'C:\\Users\\user\\AppData\\Local\\Packages\\PythonSoftwareFoundation.Python.3.10_qbz5n2kfra8p0\\LocalCache\\local-packages\\Python310\\site-packages', 'C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.1776.0_x64__qbz5n2kfra8p0', 'C:\\Program Files\\WindowsApps\\PythonSoftwareFoundation.Python.3.10_3.10.1776.0_x64__qbz5n2kfra8p0\\lib\\site-packages']
コマンド実行後、「方法1で確認したPATHが存在しなかった」場合、「PythonプログラムからPyAutoGUIがインストールされたPATHを参照できていない」と判断できます。
Pythonプログラムに以下の処理を追加することで、PythonプログラムからPyAutoGUIがインストールされたPATHを参照できるようになります。
import sys # 追加
sys.path.append('c:\users\user\appdata\local\packages\pythonsoftwarefoundation.python.3.10_qbz5n2kfra8p0\localcache\local-packages\python310\site-packages') # PyAutoGUIがインストールされたPATHを追加
import pyautogui
上記の2つの方法で、「ModuleNotFoundError: No module named ‘pyautogui’」を解消できました。
No module named ‘pyautogui’が発生しても慌てる必要はないです。
エラー内容を理解し、一つ一つ原因をつぶすことで本問題を解消できるはずです。
ちなみに、「PyAutoGUIでExcelやWordの操作を自動化する方法は?」や「Pythonを基礎から体系的に学ぶ方法は?」などを知りたい方には、以下の記事で紹介している本や教材がオススメです。
>> PyAutoGUIの入門に役に立つオススメ本や教材6選
【まとめ】No module named ‘pyautogui’の解決方法
いかがでしたでしょうか?
上記で紹介した「2つの解決方法」を実践していただくと、「ModuleNotFoundError: No module named ‘pyautogui’」を迷わずに解消できるようになります。
最後にもう一度内容を確認しましょう。
★ No module named ‘pyautogui’の原因と解決方法★
・No module named ‘pyautogui’の原因は2つ
1つ目:PyAutoGUIがインストールされていない
2つ目:PyAutoGUIがインストールされたPATHを参照できていない
・No module named ‘pyautogui’の解決方法は2つ
1つ目:PyAutoGUIをインストールする
2つ目:sys.path.appendを使う
さらに体系的にPyAutoGUIを学習したい方には、本ブログで紹介している記事がオススメです。
>> 本ブログで紹介している入門者のためのPyAutoGUI記事一覧
コメント