Python自动化办公越来越方便,我们经常也会利用python来写一些自动化的小脚本,例如批量处理文档,自动发送邮件等等。
也许是平时吹得牛比较多,有一天秦医生就问起我说能不能给她写一个自动化处理生信数据的小脚本。
这当然是毫无问题,快速让秦医生把数据发过来,下午搞定,so easy ~~~
然而我没想到的是,第二天,又是一份新的数据发过来~~
第三天又一份新的数据发过来~
于是我决定
结果是:
就这这个时候,我突然想起,如果可以把python脚本打包成exe,不就可以了吗?!即使她电脑上没有python环境,也能运行啊?!
一、安装pyinstaller
PS:可以考虑使用pip安装,即直接在cmd中敲上pip install pyinstaller,但是有时环境会在打包时提示不是可执行的命令,则可以使用下面手动安装
1.到官网http://www.pyinstaller.org/downloads.html下载pyinstaller的最新安装包
2.解压步骤1中下载好的压缩文件,cd 命令进入解压后的文件夹中,运行>>python setup.py install ,等待pyinstaller 安装完成了
3.虽然已经按照完成,但是还需要修改配置文件。运行cmd,输入echo %PATH%,找到Python的路径(如果你是直接安装python的话,请自行找到对应的路径,例如C:\Users\51582\Python\Python38-32)
4找到该路径下的Lib文件夹中的subprocess.py文件,将init()函数中的shell=Ture更改为shell=False。
二打包程序:
1.先编写好需要打包的脚本,我们编写一个测试脚本( 新建一个txt文件,内容为‘1234’):
file = open('new.txt','w')
file.write('1234')
file.close()
print('Done')
2.cmd切换到需要打包脚本的目录,执行命令: pyinstaller -F test.py
注:为了保证程序可以正常运行,pyinstaller会自动打包脚本中需要的依赖包,因此脚本中依赖包比较多的话,需要耗时较长
这里介绍几个常用命令:
-D, --onedir 最终创建一个目录,包含exe文件和依赖文件,默认选项;
-F, --onefile 最终创建一个exe文件,所有依赖文件都打包进了exe文件中,虽然exe文件会比较大,但是更方便日常使用;
-c, --console, --nowindowed 有控制台,即点击exe后会弹出命令行窗口,默认选项;
-w, --windowed, --noconsole 无控制台,即点击exe后不会弹出命令行窗口;
-p,一般不需要,但是如果出现部分自己开发的代码引入的包,可以通过这个参数手动引入
3.执行命令后,会生产多个文件夹,而我们生成的exe程序就在dist文件夹里面
4.双击exe文件,运行成功后可以看到文件夹中多了一个新的txt文件
5.另外,如果需要自定义图标,可以加上-i参数,把需要自定义的图标放到与脚本同一文件夹下即可,如我想添加的图标为1.ico
则执行命令:
pyinstaller -F -w -i 1.ico test.py
ps:图标仅支持.ico,其他格式的图片请进行转换,可以通过网站:https://jinaconvert.com/cn/convert-to-ico.php
然后就生成了新的可执行文件了: