1. 下载pyinstaller
pip install pyinstaller
2. 将脚本转为.exe文件
打开命令提示符,cd到需要转换的python脚本目录
pyinstaller -F <file_name.py>
:将脚本打包成一个.exe文件
或者
pyinstaller <file_name.py>
:将脚本打包成disk目录下的很多文件
3. 找到转换后的.exe文件
在当前目录下找到disk目录,该目录下有一个同名的.exe文件
4. 在命令提示符执行该.exe文件
报错信息:
INTEL MKL ERROR: 找不到指定的模块。 mkl_intel_thread.1.dll.
Intel MKL FATAL ERROR: Cannot load mkl_intel_thread.1.dll.
在我的anaconda虚拟环境找到了这个模块:
但是执行一直加载不到这个模块
解决方案:
试了很多方式,最终成功的办法:将‘mkl_intel_thread.1.dll.’和‘libiomp5md.pdb’放在了要执行的脚本的目录下。在命令提示符可以执行。
tips: 如果项目的解释器是anaconda环境,建议进入该anaconda环境后执行pyinstaller命令。避免全局下缺少相应的包。
5. 将该脚本设置成定时计划任务,定时执行。
打开【控制面板】——选择【大图标】——点击【管理工具】,
选择【任务计划程序】,
新建任务
!坑:我的脚本会生成文件,刚开始用的相对路径,执行定时计划任务不知道文件新建到哪了。任务执行结果显示是成功的,但是不是我想要的。后来改成绝对路径,成功。
==========================快乐分水===========================
绝绝子,怎么我也没想到,在我电脑运行好好的,在别的电脑就不行,没有报错信息。尝试好多办法都不行。气得我。
解决了:
我本身使用的是anaconda环境,python3.7,在网上搜到一篇文章说可能不支持python3.7,所以我重新创建了一个python3.6的环境。emmmmmm,就可以了。
但是我怕生成一个.exe文件兼容性不好(网上说),我使用了pyinstaller -p {python3.6conda环境的site-packages目录路径} -D XXX.py
生成的是一大堆的文件。
一个小插曲:
上面写的定时计划任务在这次这个又不好使了,不发邮件,运行结果好像是0x0FFFFFFFFFFF,解决的话,就是在操作【起始于】那里添加了可执行文件所在的路径。