質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.49%
Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

5639閲覧

PyAutoGuiを用いたマウス操作で以下のようなエラーがでます。

watarusugimoto

総合スコア47

Python 2.7

Python 2.7は2.xシリーズでは最後のメジャーバージョンです。Python3.1にある機能の多くが含まれています。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2016/08/20 07:10

編集2016/08/20 08:12

###PyAutoGuiというライブラリを用いたマウスの操作でエラーを消したい
以下のようなエラーメッセージが出ています。

環境はWindows10 Python2.7 Jupyter notebook です。

pyautogui.click()をコメントアウトして消すとエラーが消えるので、この部分が問題なのは分かるのですが、

エラーの消し方が分かりません。

どなたか分かる方よろしくお願いします。

spyderでも実行してみましたが、ユニコードデコードエラーなんでしょうか?

よく理解できていません。

###発生している問題・エラーメッセージ

--------------------------------------------------------------------------- WindowsError Traceback (most recent call last) <ipython-input-21-f630a4404d6e> in <module>() 3 screenWidth,screenHeight 4 pyautogui.moveTo(680,450) ----> 5 pyautogui.click() C:\Anaconda2\lib\site-packages\pyautogui\__init__.pyc in click(x, y, clicks, interval, button, duration, tween, pause, _pause) 360 _failSafeCheck() 361 if button == 1 or str(button).lower() == 'left': --> 362 platformModule._click(x, y, 'left') 363 elif button == 2 or str(button).lower() == 'middle': 364 platformModule._click(x, y, 'middle') C:\Anaconda2\lib\site-packages\pyautogui\_pyautogui_win.pyc in _click(x, y, button) 435 """ 436 if button == 'left': --> 437 _sendMouseEvent(MOUSEEVENTF_LEFTCLICK, x, y) 438 elif button == 'middle': 439 _sendMouseEvent(MOUSEEVENTF_MIDDLECLICK, x, y) C:\Anaconda2\lib\site-packages\pyautogui\_pyautogui_win.pyc in _sendMouseEvent(ev, x, y, dwData) 478 479 if ctypes.windll.kernel32.GetLastError() != 0: --> 480 raise ctypes.WinError() 481 482 WindowsError: [Error 5] アクセスが拒否されました。

spyderで実行してみたところ以下のようなエラーがでました。

runfile('C:/Users/Wataru/.spyder2/temp.py', wdir='C:/Users/Wataru/.spyder2') Traceback (most recent call last): File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 2902, in run_code self.showtraceback() File "C:\Anaconda2\lib\site-packages\IPython\core\interactiveshell.py", line 1830, in showtraceback value, tb, tb_offset=tb_offset) File "C:\Anaconda2\lib\site-packages\IPython\core\ultratb.py", line 1394, in structured_traceback self, etype, value, tb, tb_offset, number_of_lines_of_context) File "C:\Anaconda2\lib\site-packages\IPython\core\ultratb.py", line 1311, in structured_traceback self, etype, value, elist, tb_offset, number_of_lines_of_context File "C:\Anaconda2\lib\site-packages\IPython\core\ultratb.py", line 641, in structured_traceback lines = ''.join(self._format_exception_only(etype, value)) File "C:\Anaconda2\lib\site-packages\IPython\core\ultratb.py", line 753, in _format_exception_only Colors.Normal, s)) UnicodeDecodeError: 'ascii' codec can't decode byte 0x83 in position 10: ordinal not in range(128)

###該当のソースコード

import pyautogui screenWidth, screenHeight = pyautogui.size() screenWidth,screenHeight pyautogui.moveTo(680,450) pyautogui.click()

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

argius

2016/08/20 11:39

おそらく環境に関係する問題だとは思いますが、念のため、PyAutoGuiのバージョンとインストール方法について教えてください。 コード自体は特に問題ないと思います。私もWin10+Python2.7.12+Jupyter notebookで動作させてみましたが、特に問題なく動作しています。あと気になるのは、AnacondaをAll Usersでインストールしているところくらいでしょうか。私はJust Meでインストールしているのでこちらでは確認できませんでした。
watarusugimoto

2016/08/21 08:18

PyAutoGuiのバージョンの調べ方が分からないのですが、更新してみたので最新だと思われます。 インストール方法については、pip install pyautoguiで行いました。 All Usersにしているところがいけないんでしょうか・・・。
argius

2016/08/21 10:04

はっきりしたことは言えませんが、「アクセスが拒否されました。」というのがフォルダーのアクセス権に起因するものに見えるので、それくらいしか思いつきませんでした。具体的な対応方法が示せずにすみません。
watarusugimoto

2016/08/21 11:24

ありがとうございます。 もう少し考えてみたいと思います。
guest

回答1

0

ベストアンサー

こちらの環境win10 + pyCharmでも正常に動いています。
watarusugimotoさんもwin10なので直接の原因がなんとも分かりませんな・・・。
あまり良くない方法ですが、GitHubIssueに対策がありましたので記載します。

#try-except句で強引に無視する

python

1import pyautogui 2 3def clickFix(): 4 try: 5 pyautogui.click() 6 except PermissionError: 7 pass 8 9screenWidth, screenHeight = pyautogui.size() 10screenWidth,screenHeight 11pyautogui.moveTo(680,450) 12clickFix()

#その他
当てずっぽうですが、windowsでの権限不足があやしいかもしれません。
ログインしている時の権限を確認してみてください。私は管理者権限で実行してます。
ユーザーとかだったら管理権限になってみてください。
win10権限確認方法

あとはError5はマウス周りのソフトが悪さしてる場合も原因あるそうですが、これはあんまり関係ないかも。

投稿2016/11/14 16:11

uni8inu

総合スコア127

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.49%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問