Двойной щелчок по файлу python не дает такого же результата, как запуск через cmd

Я пытаюсь создать зум-бота с помощью pyautogui, у меня он отлично работает в pycharm/запускает его из cmd, но когда я пытаюсь запустить его, дважды щелкнув основной файл, все ломается. По сути, код ищет одно изображение с помощью функции locateCenterOnScreen() и щелкает его.

# Opening the zoom App
os.popen('C:\\Users\\user\\AppData\\Roaming\\Zoom\\bin\\Zoom.exe')
time.sleep(3)

# Click on join a meeting
join = pyautogui.locateCenterOnScreen('JoinMeeting.png', grayscale=True)
pyautogui.moveTo(join)
pyautogui.click()
time.sleep(3)

Итак, все работает так, как задумано, когда на pycharm и когда в папке, в которой работает основной, на cmd (с использованием python main.py). Тем не менее, если я дважды щелкну основной, он открывает cmd, а затем вылетает, говоря, что не может найти изображение в функции locateCenterOnScreen. Моя первоначальная мысль заключалась в том, что если вы дважды щелкните, он не запустится там, где находится файл .png, и, следовательно, не найдет его, но этого не может быть, потому что, когда я запускаю его через cmd, он отлично находит изображение.

Я пытаюсь превратить весь этот проект в .exe, чтобы сделать его доступным для большего количества людей, и именно поэтому мне нужно, чтобы он работал с двойным щелчком, потому что, когда я превращу его в .exe, он будет вести себя так же.

Спасибо


person Toxicone 7    schedule 06.10.2020    source источник
comment
Какова фактическая ошибка, скопируйте и вставьте полную трассировку (нет скриншота)   -  person jlandercy    schedule 06.10.2020
comment
Начальная папка отличается, когда вы дважды щелкаете, получаете расположение скрипта и начинаете оттуда: python" title="как я могу найти каталог скриптов с помощью python"> stackoverflow.com/questions/4934806/   -  person Mike67    schedule 06.10.2020
comment
Я думаю, поэтому я не могу загрузить картинку, потому что файлы не хранятся там, где запускается скрипт.   -  person Toxicone 7    schedule 06.10.2020


Ответы (1)


когда вы дважды щелкаете, он использует опцию открытия по умолчанию, и это может быть не python. Программы Python необходимо открывать с помощью python.exe. Я считаю, что по умолчанию используется пусковая установка python.

Но если вы хотите превратить его в исполняемый файл (.exe), все, что вам нужно, это cx-Freeze. Это чрезвычайно полезный инструмент, который превращает коды Python в исполняемые файлы. В конце концов, эффект двойного щелчка не должен иметь значения.

У меня есть cx-Freeze 3.4, и вот видео, в котором объясняется, как его загрузить и использовать. https://www.youtube.com/watch?v=HosXxXE24hA

person Benjamin2002    schedule 06.10.2020