• 用PyInstaller将python转成可执行文件exe笔记


    来自pugWoo's Life

    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, --onefile Py代码只有一个文件

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

    -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

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

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

    执行:

    Build.py C:\HelloWorld.spec

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

  • 相关阅读:
    转战物联网·基础篇06-深入理解MQTT协议之基本术语
    转战物联网·基础篇05-通俗理解MQTT协议的实现原理和异步方式
    转战物联网&#183;基础篇04-不可不知的进制关系与数据传输的本质
    转战物联网·基础篇03-从JSON数据到短指令谈思维的转变
    转战物联网·基础篇02-物联网中的角儿
    转战物联网·基础篇01-物联网之我见
    nRF24L01+组网方式及防撞(防冲突)机制的实战分享
    ElementUi中el-table分页效果
    原生无缝Banner轮播图
    详解立即执行函数(function(){}()),(function(){})()
  • 原文地址:https://www.cnblogs.com/DxSoft/p/1735199.html
Copyright © 2020-2023  润新知