python - 运行 pyinstaller 应用程序时无法启动循环
问题描述
我在一个循环中有一个循环,它只是一个自动点击器
from pyautogui import *
import pyautogui
import time
import keyboard
import win32api, win32con
stop = 'n'
while stop =='n':
time.sleep(2)
while keyboard.is_pressed('q') == False :
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
time.sleep(0.01)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)
stop = input("stop ? n/y")
当我尝试使用 pyinstaller 使其成为 exe 时
pyinstaller --onefile pythonScriptName.py
它只是给了我一个应用程序文件,但是一个空白屏幕,它什么也没做,我该如何解决这个问题?
解决方案
问题是您在每个 while 循环结束时都要求输入:
stop = input("stop ? n/y")
但是由于您没有打开终端,因此脚本无法获取输入并且循环不会继续。
编辑:我将如何解决这个问题:
while true:
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0)
time.sleep(0.01)
win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0)
if keyboard.is_pressed('c'): break
我没有测试它,但代码应该看起来类似。
推荐阅读
- node.js - 只知道公司名称如何获取公司描述?
- docker - 我怎么知道第三方 docker 镜像可以访问我们的上传数据到容器
- javascript - 如何在打字稿中使用`Set.has`?
- arrays - 为什么在这个 C 代码中没有超出范围的索引?
- spring-boot - 使用百里香形式并传递给控制器时绑定的字段错误
- python - 无法解析 [日期] 类型的字段 [日期时间]
- dart - Dart 没有在 try/catch 中捕获平台异常
- java - 用于测试的虚拟手机号码和电子邮件实用程序
- pandas - pandas.to_datetime 格式无法识别
- c# - 有没有办法使用 Windows 身份验证以其他用户身份注销和登录?【ASP.NET Core 3.1 MVC】