python - 任务调度程序中的 Pyinstaller *.exe
问题描述
我创建了一个小型 python 程序并使用 --noconsole 选项将其冻结为 *.exe 文件。当我正常运行程序时,它可以工作。但是当我把它放在启动时运行它的任务调度程序中时,它就不再工作了。
该程序没有ui。我知道它不起作用,因为它没有写入日志文件。程序中的路径是绝对的。
有什么想法会导致这个问题吗?
解决方案
您需要进行一些故障排除以缩小问题范围。我可以分享一些技巧。
- 确保您有未捕获异常的异常处理程序(在最顶部),以便将这些错误记录到文件中。如果你没有一个,你永远不会知道你的程序为什么会崩溃。确保如果您添加它,您将在记录后重新抛出异常,以便操作系统知道它崩溃了。
- 打开任务计划并手动运行任务。确保允许手动运行任务(它在配置中)。如果允许手动运行,那么自动运行应该没有问题。
- 运行任务的用户可能与手动运行任务的用户不同。您可以在尝试找出问题时尝试删除 --noconsole 选项。如果您的记录器在需要的地方没有写入权限是一个问题,您将不会在日志中看到任何内容,但可以在控制台中看到消息。
- 确保任务的工作目录正确。默认情况下,它应该使用应用程序所在的同一目录,但如果输入了路径,则可能会导致问题。
推荐阅读
- python - slurm python多处理超出内存限制
- c# - bot framework v3中的自适应卡片可以包含动态下拉菜单吗
- c# - 在 C# 中使用泛型掌握数据缓存
- typescript - 打字稿泛型+条件类型不可分配给类型错误
- php - 我的数据库在 phpMyAdmin 上不可见,但在 mysql 的数据文件夹中可用
- ios - 在swift中,如何在顶部保留一个UIViewController().view?like UIAlertController
- amazon-web-services - 无法删除 AWS Elastic Beanstalk 应用程序
- sql - 如何使用纯 SQL 获取增量记录?
- c++ - 模板参数推导算法(作为字符串)?
- c# - 为什么我提供数据时数据库会添加空值?