使用PyInstaller把你的Python程序转为Exe
把Python程序转为可执行的EXE文件,可以方便Python程序在没有安装Python的Windows系统上使用。
本文以chnroutes项目中的chnroutes.py 文件为例,详细介绍Windows XP系统上在Python 2.7环境下把它变成exe的过程,比较简单易用,建议大家一起学学。
一、下载所需软件
二、安装配置软件
首先安装Python 2.7.3,然后安装PyWin32。
最后在C盘新建一个名为pyexe的文件夹,将PyInstaller解压缩到pyexe文件夹下(保持pyinstaller-1.5.1文件夹形式),将chnroutes.py复制到pyexe文件夹下。
设置系统环境变量,方法是, 依次点击我的电脑->属性->高级->环境变量->系统变量 ,在系统变量里找到PATH,双击PATH,在结尾加上 “;C:\Python27″(不要引号) ,然后重启电脑。
打开附件中的命令提示符,输入cd C:\pyexe\pyinstaller-1.5.1命令转到工作目录下,
然输入python Configure.py命令来配置PyInstaller,稍等界面出现
I: computing PYZ dependencies…
I: done generating config.dat
完成PyInstaller配置,然后关闭命令提示符。
三、把你的Python转为Exe
打开附件中的命令提示符(全过程不要关闭),
输入cd C:\pyexe\pyinstaller-1.5.1命令转到工作目录下。
然后命令提示符里继续输入makespec.py -F C:\pyexe\chnroutes.py命令,
稍等会在pyinstaller-1.5.1文件夹下生成一个chnroutes文件夹,复制此文件夹下的chnroutes.spec文件到pyexe文件夹下。
然后命令提示符里继续输入build.py C:\pyexe\chnroutes.spec 命令,
稍等一段时间会在pyexe文件夹下生成的dist文件夹下看到chnroutes.exe程序,这个就是我们用chnroutes.py转换成的exe程序程序了(其他生成的文件文件夹可无视)。
运行chnroutes.exe程序即可生成用于openvpn的路由文件了,执行chnroutes.exe -p win命令生成用户pptp/l2tp等vpn的路由文件。学会之后就可以自己打包西厢代理、balan-proxy等Python程序为Exe了。
以下是一些makespec.py的常用参数:
-F 制作独立的可执行程序
-D 制作出的档案存放在同一个文件夹下(默认值)
-K 包含TCL/TK(对于使用了TK的,最好加上这个选项,否则在未安装TK的电脑上无法运行)
-w 制作窗口程序
-c 制作命令行程序(默认)
-X 制作使用UPX压缩过的可执行程序(使用此选项需解压upx.exe到Python安装目录下)
-o DIR 指定输出SPEC文件路径(这也决定了最后输出的exe文件路径)
–icon=[ICO文件路径] 指定程序图标
-v [指定文件] 指定程序版本信息
-n [指定程序名] 指定程序名称
更详细的说明看PyInstaller官方文档吧。
能变成linux可执行文件或者c源码就好
linxu系统一般都安装python了,直接就能运行.py文件了。
改了系统变量还是不能用,执行python Configure.py命令这一步就卡住了
提示“’python’ 不是内部或外部命令,也不是可运行的程序或批处理文件。”
我明明已经改好系统变量了的
如果强行绝对路径调研那个configure,就提示“can’t find ‘__main__’ module in ‘c:\\pyexe\\pyinstaller-1.5.1’”
哎,还不如用py2exe
环境变量
文件夹
命令
还可以参考以下文章:
http://www.codecho.com/pyinstaller-converts-your-python-to-windows-exe/
http://www.cnblogs.com/yuyan/archive/2012/03/27/2419524.html
http://www.pyiner.com/pyinstaller%E7%AE%80%E6%98%8E%E6%95%99%E7%A8%8B/
成功了,原来系统变量改了必须重启机器才行
重启后再试就成功了
这个比py2exe好些,因为生成的是个单独的exe文件,比较方便
不像py2exe生成的是带文件夹和其他dll的那种,发布时必须全部打包传给用户
win7:设置Path只对之前运行的cmd无用, 之后启动的cmd有效的. 无需重启计算机的. :P