用Python写脚本,小程序可谓非常方便,但它需要有特定的python环境才能运行,因此如果你想在别的电脑上运行时就会出现许多问题,就算已经安装了Python,但版本可能相差较大,且相关的依赖库没有安装,同样不能正常运行。那有没有一种工具能把我们写的代码和依赖库以及编译环境打包到一起呢?答案是肯定的,Pyinstaller就是一款不错的工具,可以一键把你的代码打包成exe文件。下面就先来聊一聊pyinstaller的使用方法。
一、用Pyinstaller打包python代码
1. 安装Pyinstaller
安装过程非常简单,在命令行中运行:
pip install pyinstaller
即可完成安装。
2. 打包代码
我写了一段简单的代码作为例子,为了更清晰地演示打包过程,我将main()函数写在了单独的文件中,并将mylib.py作为一个库引入。
# mylib.py#import timedef myfunc(): now = time.time() time_str = time.strftime("%Y-%m-%d %H:%M", time.localtime(now)) print('现在是' + time_str) print("Have a nice day!")
# main.py#import mylibimport osif __name__ == "__main__": mylib.myfunc() os.system('pause')
这时只需要在命令行中运行:
pyinstaller.exe -F yourcode.py
即可。会看到一下输出:
PS D:文档mpest> pyinstaller.exe -F main.py580 INFO: PyInstaller: 3.6582 INFO: Python: 3.7.3585 INFO: Platform: Windows-10-10.0.18362-SP0592 INFO: wrote D:文档mpestmain.spec596 INFO: UPX is not available.611 INFO: Extending PYTHONPATH with paths['D:文档mpest', 'D:文档mpest']612 INFO: checking Analysis614 INFO: Building Analysis because Analysis-00.toc is non existent614 INFO: Initializing module dependency graph...620 INFO: Caching module graph hooks...657 INFO: Analyzing base_library.zip ...13893 INFO: Caching module dependency graph...14161 INFO: running Analysis Analysis-00.toc14233 INFO: Adding Microsoft.Windows.Common-Controls to dependent assemblies of final executable required by d:programfilespythonpython.exe15748 INFO: Analyzing D:文档mpestmain.py15751 INFO: Processing module hooks...15752 INFO: Loading module hook "hook-encodings.py"...16003 INFO: Loading module hook "hook-pydoc.py"...16011 INFO: Loading module hook "hook-xml.py"...16916 INF