PyInstaller打包

本文介绍如何使用PyInstaller将Python脚本打包成独立的可执行文件。包括安装配置、编写Py程序、创建并构建spec文件等步骤。

1、安装PyInstaller

PyInstaller的作用如标题所说,首先需要下载PyInstaller和UPX,UPX是用来压缩exe的,点击超链接下载吧,目前稳定版本是1.3,注意选择你使用的操作系统。如在Windows下,将下载解压后的upx.exe放到PyInstaller解压后的文件夹内。设PyInstaller的文件夹为D:\PyInstaller,下同。命令行下进入D:\PyInstaller,运行Configure.py,应该看到如下信息:

I: computing EXE_dependenciesI: Finding TCL/TK...I: found TCL/TK version 8.5I: testing for Zlib...I: ... Zlib availableI: Testing for ability to set icons, version resources...I: ... resource update availableI: Testing for Unicode support...I: ... Unicode availableI: testing for UPX...I: ...UPX availableI: computing PYZ dependencies...

不能出现开头为E(Error)的信息,最好不要有W(Warning)的信息。如果出现找不到某dll,请把该dll文件放置到C:\Windows\system32下,一般能解决。

Linux用户还需要编译Runtime Executables,Windows用户不需要。主要是运行Make.py,会在PyInstaller\support\load\下生成run和run_d两个文件,详见PyInstaller\doc\Manual.html说明。

2、写一个Py程序

为了实验,写一个HelloWorld.py,假设保存在C:\HelloWorld.py

#!/usr/bin/env python
print'Hello,World!'
words 
= raw_input('What do you want to say? ')
print'you said:'+words

3、创建spec文件

spec文件是用来告诉PyInstaller要编译的py文件和参数的。执行"Makespec.py+参数+Py代码路径"就可以,主要参数如下(详见PyInstaller\doc\Manual.html):

-F, --onefilePy代码只有一个文件

-D, --onedirPy代码放在一个目录中(默认是这个)

-K, --tk包含TCL/TK

-d, --debug生成debug模式的exe文件

-w, --windowed, --noconsole窗体exe文件(Windows Only)

-c, --nowindowed, --console控制台exe文件(Windows Only)

-X, --upx使用upx压缩exe文件

-o DIR, --out=DIR设置spec文件输出的目录,默认在PyInstaller同目录

--icon=<FILE.ICO>加入图标(Windows Only)

-v FILE, --version=FILE加入版本信息文件

对于HelloWorld.py,具体执行以下代码:
 

Makespec.py --onefile --console --upx --tk -o C:\ C:\HelloWorld.py   此命令打包之后会有cmd窗口

Makespec.py --onedir --window --upx --tk -o C:\ C:\HelloWorld.py   此命令打包之后无cmd窗口


执行后C:\就出现HelloWorld.spec

4、Build spec文件,生成exe文件

执行:
 

Build.py C:\HelloWorld.spec
 

一长串信息之后,你会在C:\下发现HelloWorld.exe这个文件,就是它啦!体积还真不小,2.7M,这是因为这个HelloWorld程序杀鸡用牛刀罢了。此外其它的文件均是过程文件,可删除。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值