首页 > 解决方案 > 任务调度程序中的 Pyinstaller *.exe

问题描述

我创建了一个小型 python 程序并使用 --noconsole 选项将其冻结为 *.exe 文件。当我正常运行程序时,它可以工作。但是当我把它放在启动时运行它的任务调度程序中时,它就不再工作了。

该程序没有ui。我知道它不起作用,因为它没有写入日志文件。程序中的路径是绝对的。

有什么想法会导致这个问题吗?

标签: pythonpyinstallertaskscheduler

解决方案


您需要进行一些故障排除以缩小问题范围。我可以分享一些技巧。

  1. 确保您有未捕获异常的异常处理程序(在最顶部),以便将这些错误记录到文件中。如果你没有一个,你永远不会知道你的程序为什么会崩溃。确保如果您添加它,您将在记录后重新抛出异常,以便操作系统知道它崩溃了。
  2. 打开任务计划并手动运行任务。确保允许手动运行任务(它在配置中)。如果允许手动运行,那么自动运行应该没有问题。
  3. 运行任务的用户可能与手动运行任务的用户不同。您可以在尝试找出问题时尝试删除 --noconsole 选项。如果您的记录器在需要的地方没有写入权限是一个问题,您将不会在日志中看到任何内容,但可以在控制台中看到消息。
  4. 确保任务的工作目录正确。默认情况下,它应该使用应用程序所在的同一目录,但如果输入了路径,则可能会导致问题。

推荐阅读