コマンドプロンプトからこのスクリプトを実行した際、画面上にChromeのアイコンは表示されていますか?
コマンドプロンプト上で.pyファイルを実行するとpyautogui.locateCenterOnScreenが正常に動作しないもないを解決したい
解決したいこと
コマンドプロンプト上で.pyファイルを実行するとpyautogui.locateCenterOnScreenが正常に動作しないもないを解決したい
発生している問題・エラー
開発エディタのSpyderでプログラムを実行したところ正しく画像の座標を取得できるのですが、
コマンドプロンプト上でプログラムを実行すると座標を取得できません。(下画像)
参照しているpythonの実行ファイルはどちらも以下を参照していのにです。
C:\Users\username\AppData\Local\Programs\Python\Python37\python.exe
原因がさっぱりでして
どなたかコマンドプロンプト上で以下に示すコードを実行できますでしょうか。
該当するソースコード
import pyautogui as pg
import time
#画像ファイルから座標を取得する処理
def get_locate_from_filename(filename):
locate = None
#グレイスケール処理で95%一致判定
#検索画像の座標取得
#locate = pg.locateCenterOnScreen(filename, grayscale = True)
try:
locate = pg.locateCenterOnScreen(filename,grayscale = True,confidence=0.1)
return locate
except:
print(locate)
return False
#メインルーチン
if __name__ == "__main__":
#画像ファイルを検索クリック処理
nsec = 0
timeout = 5
state_search = 'STATE_SEARCH_CHROME'
#検索画像が見つかった場所の座標系が返る
button_position = get_locate_from_filename('chrome.png')
print(button_position)
time.sleep(3)
0
4Answer
Like!
@anonymous さん
はい画面上にアイコンは表示されています。
Like!
コマンドプロンプトから実行した場合、locateCenterOnScreen
が例外を投げていると思いますが、どのような例外が発生していますか?except:
でtraceback.print_exc()
を呼ぶと、例外の詳細が出力されると思います。
参考1
https://ja.stackoverflow.com/a/6982
参考2
https://qiita.com/qqhann/items/5dbe38be94bd44b20937
Like!
回答ありがとうございます。
type_, value, traceback_ = sys.exc_info()で見たところ、以下のような詳細が得られました。pillowが必要とか言われました。なんかとっかかりがつかめました。助かりました。pillowが良くわかりませんが調べてみます。非常に助かりました!
Like!