PyInstaller将python脚本打包成exe可执行程序

简介:

一、PyInstaller说明

      pyinstaller是一个第三方模块,托管在github上,它是一个把python脚本及其依赖的模块,打包成一个独立的可执行程序,使其能运行在没有安装python环境的机器上。支持Linux/unix /mac 及windows,但注意的是,在什么平台上打包,就会生成对应平台可执行的独立程序,如在windows上打包会生成exe的可执行文件。本文所演示的就是在windows平台使用pyinstaller打包一个简单的exe程序。在linux上同样pyinstaller -F xxx.py  会生成对就的可执行程序。



二、原始脚本内容如下:

1、生成一注双色球代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
def  CaiSeQiu(num = 1 ):                  
     num  =  int (num)
     =  1
     with  open ( "tmp" , 'w' ) as f:
         while  p < =  num:
             LAN  =  []
             =  []
             while  len (L) < =  5 :
                 =  LAN.append(random.randrange( 1 34 ))
                 =  sorted ( set (LAN))
                 BLUE  =  random.randrange( 1 17 )
             print ( "红球: %s, 蓝球: %s" %  (L, BLUE)  
 
             + =  1
if  __name__  = =  "__main__" :
    CaiSeQiu()

执行会生成如下:

红球: [10, 13, 20, 24, 28, 29], 蓝球: 9


三、使用PyInstaller打包成可执行的exe程序

1、环境

python2.7.13 ,为了打包成有图形化的可执行程序需要安装wxpython模块,pip install wxpython

带有图形化的可执行程序 生成双色球.

2、代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#!/usr/bin/python
# -*- coding=utf-8 -*-
# by author San at 2016-03-03
import  random
import  sys
import  wx
 
#清除生成的双色球
def  onclear(event):
     content.SetValue('')
     
def  CaiSeQiu(event,num = 1 ):
     num  =  int (num)
     =  1
     with  open ( "tmp" , 'w' ) as f:
         while  p < =  num:
             LAN  =  []
             =  []
             while  len (L) < =  5 :
                 =  LAN.append(random.randrange( 1 34 ))
                 =  sorted ( set (LAN))
                 BLUE  =  random.randrange( 1 17 )
             content.SetValue( "红球: %s, 蓝球: %s"  %  (L, BLUE))
             + =  1
 
app  =  wx.App()
frame  =  wx.Frame( None , title = "彩色球生成器v1.0" , size = ( 420 350 ))
panel  =  wx.Panel(frame)
 
sBox  =  wx.BoxSizer() 
vBox  =  wx.BoxSizer(wx.VERTICAL) 
  
content  =  wx.TextCtrl(panel)
btn1  =  wx.Button(panel, label = "生成" )
btn2  =  wx.Button(panel, label = "清除" )
 
sBox.Add(btn1, proportion = 1 , flag = wx.EXPAND | wx. ALL , border = 5 )
sBox.Add(btn2, proportion = 1 , flag = wx.EXPAND | wx. ALL , border = 5 )
vBox.Add(sBox, proportion = 1 , flag = wx.EXPAND | wx. ALL , border = 5 )
vBox.Add(content, proportion = 5 , flag = wx.EXPAND | wx. ALL , border = 5 )
btn1.Bind(wx.EVT_BUTTON, CaiSeQiu)
btn2.Bind(wx.EVT_BUTTON, onclear)
 
panel.SetSizer(vBox)
frame.Show()
app.MainLoop()

保存为CaiseQiu.pyw  双击执行如图:

wKiom1lnFTGwfRQSAAAmEbRXUUM699.png-wh_50

说明:这个pyw后缀的python脚本需要要安装有python的系统上才能执行,但是没法在没有安装python环境的系统执行,因此需要pyinstaller打包成exe文件


3、pyinstaller打包成caiseqiu.exe

将caiseqiu.pyw放到一个非英文目录(c:\mypythonexe\)下,打开cmd -->cd c:\mypythonexe

如图:

wKiom1lnF5iz4Q02AAAWLucZE4w637.png


执行:pyinstaller -F -w caiseqiu.pyw 此时会出现类似 如下信息

3845 INFO: Building COLLECT out00-COLLECT.toc completed successfully.

表示打包成功;此时目录下有如下信息

 c:\MyPythonexe 的目录

2017/07/13  14:46    <DIR>          .
2017/07/13  14:46    <DIR>          ..
2017/07/13  14:46    <DIR>          build
2017/07/12  18:32             1,264 caiseqiu.pyw
2017/07/13  14:46               873 caiseqiu.spec
2017/07/13  14:46    <DIR>          dist
               2 个文件          2,137 字节
               4 个目录  4,577,239,040 可用字节


在dist目录下就会有一个caiseqiu.exe 如下:

wKiom1lnGSayX5lnAABSzeaH-Cs777.png-wh_50


双击执行如下:

wKiom1lnGTLhEj7vAAAvCBrADBI725.png-wh_50

点生成即生成一柱,清除功能。

到这里我们使用wxpython   PyInstaller模块完成windows平台 可执行exe程序打包。










本文转自 dyc2005 51CTO博客,原文链接:http://blog.51cto.com/dyc2005/1947108,如需转载请自行联系原作者
目录
相关文章
|
11月前
|
监控 机器人 编译器
如何将python代码打包成exe文件---PyInstaller打包之神
PyInstaller可将Python程序打包为独立可执行文件,无需用户安装Python环境。它自动分析代码依赖,整合解释器、库及资源,支持一键生成exe,方便分发。使用pip安装后,通过简单命令即可完成打包,适合各类项目部署。
1896 68
|
API 语音技术 开发者
Python 项目打包,并上传到 PyPI,分享项目
本文介绍了如何使用 Poetry 打包并发布一个 Python 项目至 PyPI。内容包括:项目创建、配置 `pyproject.toml` 文件、构建软件包、上传至 PyPI、安装与使用。通过实例 iGTTS 展示了从开发到发布的完整流程,帮助开发者快速分享自己的 Python 工具。
|
测试技术 Python
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
896 31
【03】做一个精美的打飞机小游戏,规划游戏项目目录-分门别类所有的资源-库-类-逻辑-打包为可玩的exe-练习python打包为可执行exe-优雅草卓伊凡-持续更新-分享源代码和游戏包供游玩-1.0.2版本
|
Shell 开发者 Docker
Python文件打包:一站式指南
本文深入探讨Python文件打包的各种方法,从基础的zip和tar工具到高级的setuptools、PyInstaller、cx_Freeze等,涵盖Docker镜像、虚拟环境及自包含可执行文件的打包方式。通过示例代码与详细解析,帮助开发者根据项目需求选择合适的打包方案,提升代码分发与部署效率。内容全面,适合各水平读者学习参考。
1660 7
|
XML JSON Ubuntu
Python实用记录(十五):PyQt/PySide6打包成exe,精简版(nuitka/pyinstaller/auto-py-to-exe)
本文介绍了使用Nuitka、PyInstaller和auto-py-to-exe三种工具将Python的PyQt/PySide6应用打包成exe文件的方法。提供了详细的安装步骤、打包命令和参数说明,适合新手学习和实践。
8790 0
|
Python Windows
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
Python基础教程(第3版)中文版 第18章 程序打包 (笔记)
264 0
|
搜索推荐 区块链 开发者
【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件
【python程序打包教程】PyInstaller一键打包Python程序为独立可执行exe文件
|
Python
使用PyInstaller将Python应用程序打包成EXE文件
使用PyInstaller将Python应用程序打包成EXE文件
1300 0
|
XML 编解码 数据格式
python二进制程序打包为 mac app(dmg)-材料准备
python二进制程序打包为 mac app(dmg)-材料准备
python二进制程序打包为 mac app(dmg)-材料准备
|
编译器 API C++
python 外部传参程序编写并打包exe及其调用方式
每种编程语言相互联系又相互独立,为此使用某种编程语言编写的程序都能够独立封装和生成自己的运行程序exe或者其他的API接口。而对于这样的运行程序目的往往不是用于双击使其运行的,而是通过外部传入的参数运行其中的内核函数达到某种目的的。所以在此研究python如何编写外部传参的程序,并将其封装未exe便于外部使用。
1384 0
python 外部传参程序编写并打包exe及其调用方式

推荐镜像

更多