Go Down

Topic: problème pyautogui (Read 653 times) previous topic - next topic

chevalchien

bonjour, je débute et je cherche à contrôler vlc avec deux capteurs HC-SR04. J'essai de suivre ce logiciel http://makesmarttech.blogspot.com/2017/12/amazing-control-computer-using-hand.html

mais je n'arrive pas à importer pyautogui qd je tape dans CMD 'import pyautogui' il me met "'import' n'est pas reconnu en tant que commande interne
ou externe, un programme exécutable ou un fichier de commandes." je ne comprend pas pourquoi.

si vous avec une idée ou une autre solution pour controler VLC je suis preneur !

merci d'avance

hbachetti


Il faut copier le script python du paragraphe "Step 6: Python Code" dans un fichier et le nommer : pythogui.py

Ensuite le lancer dans cmd :

python pythogui.py

Comme le fichier a l'extension .py, tu devrais avoir la possibilité de le lancer bêtement avec :

pythogui.py

Python est-il installé sur la machine ?
Et les librairies pyserial, PyAutogui ?
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chevalchien

merci pour la réponse, je le copie dans quoi? un doc text? oui python est installé ainsi que pyserial et pyautogui

chevalchien

je l'ai mit dansd un doc txt et placé dans le dossier de python. Après avoir fais la commande python pythogui.py voilà ce qu'il se passe :

"Microsoft Windows [version 10.0.17134.648]
(c) 2018 Microsoft Corporation. Tous droits réservés.

C:\Program Files\VCG\MeshLab>cd C:\python

C:\python>python pythogui.py
 File "pythogui.py", line 3
   const int trigger1 = 2; //Trigger pin of 1st Sesnor
           ^
SyntaxError: invalid syntax

C:\python>





"

fdufnews

#4
Apr 12, 2019, 10:01 pm Last Edit: Apr 12, 2019, 10:04 pm by fdufnews
je l'ai mit dansd un doc txt et placé dans le dossier de python.
Oui mais hbachetti avait parlé du script qui se trouve au step 6 pas celui du step 5.
Là tu t'embrouilles entre le sketch arduino et le code python.

hbachetti

Mamma mia ... ma que cazzo  :smiley-confuse:
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chevalchien

non j'ai bien mit le code du step 6

hbachetti

Step 5 (c'est du C) :

Code: [Select]
const int trigger1 = 2; //Trigger pin of 1st Sesnor

Step 6 (du python) :

Code: [Select]
import serial #Serial imported for Serial communication

Si tu ne vois pas la différence entre les deux langages il vaut mieux changer de lunettes.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chevalchien

je m'étais trompé, j'avais mit les 2 codes à la suite. En mettant juste celui du step 6 voilà ce que j'obtiens

Code: [Select]
C:\python>python pythogui.py
Traceback (most recent call last):
  File "pythogui.py", line 3, in <module>
    import pyautogui   #Required to to perform actions
  File "C:\python\lib\site-packages\pyautogui\__init__.py", line 84, in <module>
    import pyscreeze
  File "C:\python\lib\site-packages\pyscreeze\__init__.py", line 168
    yield Box(x, y, needleWidth, needleHeight)
SyntaxError: 'return' with argument inside generator

C:\python>

chevalchien

en tapant 'pyautogui.py' au lieu de 'pythogui.py' voila ce que j'obtiens
 
Code: [Select]
C:\python>python pyautogui.py
Right Locked

Forward

Traceback (most recent call last):
  File "pyautogui.py", line 3, in <module>
    import pyautogui   #Required to to perform actions
  File "C:\python\pyautogui.py", line 23, in <module>
    pyautogui.hotkey('ctrl', 'right')
AttributeError: 'module' object has no attribute 'hotkey'

C:\python>


les droits du fichiers sont pourtant accessible par tous les utilisateurs

chevalchien

maintenant voilà ce qu'il se passe

Code: [Select]
c:\python>python pyautogui.py
Right Locked

Forward

Traceback (most recent call last):
  File "pyautogui.py", line 3, in <module>
    import pyautogui   #Required to to perform actions
  File "c:\python\pyautogui.py", line 23, in <module>
    pyautogui.hotkey('ctrl', 'right')
AttributeError: 'module' object has no attribute 'hotkey'

c:\python>python pyautogui.py
Right Locked

Forward

Traceback (most recent call last):
  File "pyautogui.py", line 3, in <module>
    import pyautogui   #Required to to perform actions
  File "c:\python\pyautogui.py", line 23, in <module>
    pyautogui.hotkey('ctrl', 'right')
AttributeError: 'module' object has no attribute 'hotkey'

hbachetti


pyautogui.py est un module importé par pythogui.py.
Il ne sert à rien de chercher à l'exécuter seul.

Ensuite :
Il semblerait que tu aies renommé le script pythogui.py en pyautogui.py

Un script pyautogui.py qui importe un module pyautogui : vraiment n'importe quoi.

Ce qui explique : AttributeError: 'module' object has no attribute 'hotkey'

Ensuite :
Si tu reviens au nom d'origine (pythogui.py), avec l'erreur suivante :
SyntaxError: 'return' with argument inside generator

Là je t'avoue franchement que le module pythogui semble ne pas fonctionner avec python 2.7.
Le simple fait de l'importer provoque une exception.

Possible que cela puisse fonctionner avec python 3.

https://github.com/asweigart/pyscreeze/issues/46

Cela veut clairement dire que pyautogui a subi des évolutions testées sous python 3 mais pas sous python 2.7.
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chevalchien

j'ai rechangé le nom et dl python 3 voilà maintenant ce que j'obtiens

Code: [Select]
C:\Users\espal\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.7>pythogui.py
Traceback (most recent call last):
  File "C:\Users\espal\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Python 3.7\pythogui.py", line 1, in <module>
    import serial #Serial imported for Serial communication
ModuleNotFoundError: No module named 'serial'

hbachetti

Il faut tout simplement réinstaller pyserial sur python 3
Et pyautogui bien sûr.
Reprendre tout depuis le début
Linux is like a wigwam: no Windows, no Gates, and an Apache inside ...

chevalchien

tout désinstallé tout réinstallé voilà ce que me dit python
Code: [Select]
>>> import serial #Serial imported for Serial communication
>>> import time #Required to use delay functions
>>> import pyautogui   #Required to to perform actions
>>> ArduinoSerial = serial.Serial('com3',9600) #Create Serial port object called arduinoSerialData
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\espal\AppData\Local\Programs\Python\Python37-32\lib\site-packages\serial\serialwin32.py", line 31, in __init__
    super(Serial, self).__init__(*args, **kwargs)
  File "C:\Users\espal\AppData\Local\Programs\Python\Python37-32\lib\site-packages\serial\serialutil.py", line 240, in __init__
    self.open()
  File "C:\Users\espal\AppData\Local\Programs\Python\Python37-32\lib\site-packages\serial\serialwin32.py", line 62, in open
    raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
serial.serialutil.SerialException: could not open port 'com3': PermissionError(13, 'Accès refusé.', None, 5)
>>> Traceback (most recent call last):
  File "<stdin>", line 1
    Traceback (most recent call last):
                         ^
SyntaxError: invalid syntax
>>>   File "<stdin>", line 1, in <module>
  File "<stdin>", line 1
    File "<stdin>", line 1, in <module>
    ^
IndentationError: unexpected indent
>>>   File "C:\Users\espal\AppData\Local\Programs\Python\Python37-32\lib\site-packages\serial\serialwin32.py", line 31, in __init__
  File "<stdin>", line 1
    File "C:\Users\espal\AppData\Local\Programs\Python\Python37-32\lib\site-packages\serial\serialwin32.py", line 31, in __init__
    ^
IndentationError: unexpected indent
>>>     super(Serial, self).__init__(*args, **kwargs)
  File "<stdin>", line 1
    super(Serial, self).__init__(*args, **kwargs)
    ^
IndentationError: unexpected indent
>>>   File "C:\Users\espal\AppData\Local\Programs\Python\Python37-32\lib\site-packages\serial\serialutil.py", line 240, in __init__
  File "<stdin>", line 1
    File "C:\Users\espal\AppData\Local\Programs\Python\Python37-32\lib\site-packages\serial\serialutil.py", line 240, in __init__
    ^
IndentationError: unexpected indent
>>>     self.open()
  File "<stdin>", line 1
    self.open()
    ^
IndentationError: unexpected indent
>>>   File "C:\Users\espal\AppData\Local\Programs\Python\Python37-32\lib\site-packages\serial\serialwin32.py", line 62, in open
  File "<stdin>", line 1
    File "C:\Users\espal\AppData\Local\Programs\Python\Python37-32\lib\site-packages\serial\serialwin32.py", line 62, in open
    ^
IndentationError: unexpected indent
>>>     raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
  File "<stdin>", line 1
    raise SerialException("could not open port {!r}: {!r}".format(self.portstr, ctypes.WinError()))
    ^
IndentationError: unexpected indent
>>> serial.serialutil.SerialException: could not open port 'com3': PermissionError(13, 'Accès refusé.', None, 5)
  File "<stdin>", line 1
    serial.serialutil.SerialException: could not open port 'com3': PermissionError(13, 'Accès refusé.', None, 5)
                                                    ^
SyntaxError: invalid syntax
>>> time.sleep(2) #wait for 2 seconds for the communication to get established
>>> while 1:
...     incoming = str (ArduinoSerial.readline()) #read the serial data and print it as line
...     print(incoming)
...     
...     if 'Play/Pause' in incoming:
...         pyautogui.typewrite(['space'], 0.2)
...
...
...     if 'Rewind' in incoming:
...         pyautogui.hotkey('ctrl', 'left') 
...
...
...     if 'Forward' in incoming:
...         pyautogui.hotkey('ctrl', 'right')
...
...
...     if 'Volume Incresaed' in incoming:
...         pyautogui.hotkey('ctrl', 'down')
...         
...
...
...     if 'Volume Decreased' in incoming:
...         pyautogui.hotkey('ctrl', 'up')
...
...
...     incoming = "";

Go Up