IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 开发工具 -> python编译exe后无法执行定时任务(apscheduler) -> 正文阅读

[开发工具]python编译exe后无法执行定时任务(apscheduler)

??????程序在pycharm运行正常,能按照设定时间定时执行任务,打包exe后定时功能失效。常见原因有有个:一是add_job方法不能使用add_job(jobname,'cron',minute=15)的形式,而要使用CronTrigger方法,原因暂时未知,可能是打包后不识别‘cron’参数,interval一样;二是apscheduler需要用到第三方库tzdata的data文件(关于时区的tzdata.zoneinfo.Asia),而pyinstaller没有自带该库的hook,所以找不到对应的时区信息,就无法定时。?????????

????????解决方法如下:(以下情况不一定同时出现,逐一尝试)

第一步:修改add_job方式

原方式:
sched.add_job(monitor.Tasks, 'cron', minute=15)

新方式:
from apscheduler.triggers.cron import CronTrigger
trggier = CronTrigger(minute=15) 
sched.add_job(monitor.Tasks,trigger=trggier)

第二步:添加找不到的库

打包exe后,不要双击exe运行,在控制台进入exe所在目录使用命令方式运行:.\xxx.exe,这样控制台不会关闭,方便查看报错信息。先后报错:找不到tzdata、tzdata.zoneinfo.Asia模块,如下。

但虚拟环境中已经安装了该模块,网上的一种解决方案是在程序中import该模块,但实际import时提示没有该模块,另一种方案是在打包生成的.spec文件中找到hiddenimports=[ ],在括号中添加该模块,如下,亲测可行。

hiddenimports=["tzdata","tzdata.zoneinfo.Asia"]

重新编译:

pyinstaller test.spec

第三步:编写hook文件

解决上述问题后,重新编译再运行提示:

原因如开始所说,pyinstaller没有自带tzdata的hook,需要自己写一个放进去,hook文件命名规则: hook-【库名】.py,如hook-tzdata.py,写入如下两行内容:

from PyInstaller.utils.hooks import collect_data_files
datas = collect_data_files("tzdata")

找到pyinstaller存放hook的文件夹,我的是D:\Users\dell\anaconda3\envs\bpm\Lib\site-packages\PyInstaller\hooks。(注意:如果使用虚拟环境,应找到虚拟环境下的pyinstaller),将刚才编写的hook文件放到该文件下。

第四步:重新编译

删除build文件夹,重新编译即可。

  开发工具 最新文章
Postman接口测试之Mock快速入门
ASCII码空格替换查表_最全ASCII码对照表0-2
如何使用 ssh 建立 socks 代理
Typora配合PicGo阿里云图床配置
SoapUI、Jmeter、Postman三种接口测试工具的
github用相对路径显示图片_GitHub 中 readm
Windows编译g2o及其g2o viewer
解决jupyter notebook无法连接/ jupyter连接
Git恢复到之前版本
VScode常用快捷键
上一篇文章      下一篇文章      查看所有文章
加:2021-11-17 12:57:47  更:2021-11-17 12:59:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/15 20:03:46-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码