pyinstaller не удалось выполнить скрипт, простой скрипт, который работал с idle

#python #pyinstaller #py2exe

#python #pyinstaller #py2exe

Вопрос:

я создал небольшой инструмент для привязки ctrl win стрелка вправо к клавише в этом коде, его F2 проблема в том, что когда я пытаюсь использовать pyinstaller, чтобы сделать его исполняемым для моих друзей, которые хотели этот инструмент, когда я пытаюсь открыть exe, он сказал, что не удалось выполнить скрипт. но он работает правильно с python idle код :

 from pynput.keyboard import Key , Controller

keyboard = Controller()

i=2

import keyboard
import time
def waitUntil(): #defines function
    wU = True
    while wU == True:
        if not keyboard.is_pressed("F2"): #checks the condition
            wU = False
        else:
            wU = True

while i == 2 :
    if keyboard.is_pressed("F2") :
        waitUntil()
        keyboard.press("Ctrl cmd Right")
        keyboard.release("Ctrl cmd Right")```

 

Ответ №1:

Здесь трудно помочь, потому что в конечном итоге у контроллера нет метода с именем «is_pressed ()».

Очистите свой код как таковой:

 from pynput.keyboard import Controller

keyboard = Controller()

def waitUntil(): #defines function
    wU = True
    while wU == True:
        if not keyboard.is_pressed("F2"): #checks the condition
            wU = False
        else:
            wU = True

while True :
    if keyboard.is_pressed("F2") :
        waitUntil()
        keyboard.press("Ctrl cmd Right")
        keyboard.release("Ctrl cmd Right")
 

и при запуске вы должны получить следующую ошибку:

 Traceback (most recent call last):
  File "/home/oubnouquestion.py", line 14, in <module>
    if keyboard.is_pressed("F2") :
AttributeError: 'Controller' object has no attribute 'is_pressed'
 

По крайней мере, это то, что я получаю в Linux с последней версией pynput. Таким образом, он сломался еще до того, как я добрался до Pyinstaller. Вы уверены, что это работает в режиме ожидания?

Комментарии:

1. я очень уверен, что не знаю, почему это не работает для вас, но есть ли у вас альтернатива

2. ps: у меня Windows 10