本文环境配置:

系统=>windows10:64位

语言=>Python:3.7.1

第三方库
pywin32:224
PyInstaller:3.4
PyQT5:5.11.3

工具=>PyCharm:2018.3.1

1、安装Python

官网下载对应系统位数的版本:

https://www.python.org/

使用pip命令安装第三方库:

image

pip install pywin32
pip install PyInstaller
pip install PyQT5

2、安装PyCharm

https://www.jetbrains.com/pycharm/

首先编写需要转换exe的Python代码,使用PyQT5做一个简单的GUI

创建一个窗体

import sys
from PyQt5.Qt import *app = QApplication(sys.argv)
# 实例对象# 窗体大小
window = QWidget()
window.resize(500, 500)
window.setWindowTitle('测试')
window.move(400, 200)# 显示窗体
window.show()
sys.exit(app.exec_())**在窗体上添加一个标签**# 标签
label = QLabel(window)
label.setText('测试显示')
label.move(250, 100)**定义两个槽函数,功能是修改标签上的内容**# 槽函数1
def btn_Old():label.setText('测试显示')# 槽函数2
def btn_New():label.setText('点我干啥')在窗体上添加两个按钮,并链接槽函数# 按钮1
btn1 = QPushButton(window)
btn1.setText('恢复显示')
btn1.move(200, 200)
btn1.clicked.connect(btn_Old)
# 信号与槽# 按钮2
btn1 = QPushButton(window)
btn1.setText('修改显示')
btn1.move(300, 200)
btn1.clicked.connect(btn_New)
# 信号与槽

一个简单的GUI搞定,完整代码如下,代码并未做优化,只是测试用。文件名称定义为test.py

image


转换EXE

打开命令窗口,切换到****test.py文件的路径下

image

输入命令

pyinstaller -F -w test.py

image

开始执行代码,运行完成之后,在text.py文件的目录下有一个dist文件夹, 里面就有生成的EXE文件

image

搞定,直接双击运行编写好的GUI程序。

PyInstaller部分参数的含义

-F 表示生成单个可执行文件
-w 表示去掉控制台窗口,这在GUI界面时非常有用。不过如果是命令行程序的话那就把这个选项删除吧!
-i 表示可执行文件的图标

PyInstaller注意点

1、有一些代码需要调用一些图片和资源文件的,这是不会自动导入的,需要你自己手动复制进去才行。不然exe文件运行时命令窗口会报错找不到这个文件。

2、当你使用错误的参数去打包或者打包到一半中断,等等此类运行到一半没了的情况。会导致你原来的py文件变成一个0KB的空文件。里面的代码会全部消失!!!所以以后需要有个良好的习惯,就是复制一份代码出来,用这个副本进行打包。并且参数出错,或者打错了导致失败时,检查下副本文件的py文件是否还存在再继续重新打包,不然打出来的就是空的文件,自然一直闪退,因为压根没内容。

3、写代码的时候应当有个良好的习惯,用什么函数导什么函数,不要上来import整个库,最后你会发现你一个100KB的代码打包出来有500MB,全是库,简直无语

Python脚本生成单个EXE文件相关推荐

  1. Python脚本生成的exe文件自动升级程序实现方法

    最近同事使用python写了一个在公司内部使用的 C/S 架构的软件,主要功能在服务端完成.通过pyinstaller 生成 exe的客户端,希望能够给客户端增加版本校验自动升级功能 在这里记录下实现 ...

  2. python打包成exe导入文件_【转载】将python脚本打包成exe文件

    标签: exe文件也就是可以直接执行的文件.通常我们编好的带py后缀的脚本文件都是需要在有python的环境下执行, 每次通过Win + R打开运行窗口再输入powershell打开控制台,再千辛万苦 ...

  3. Python脚本打包成exe文件

    打包工具有很多,这里使用pyinstaller 安装Pyinstaller 打开cmd,输入: pip install pyinstaller 安装完成后,检查安装是否成功: pyinstaller ...

  4. xp python转化为exe_使用Py2exe从python脚本生成的exe在xp上不起作用

    我有一个python脚本,在我的计算机上运行良好(安装了python2.732位).它有以下进口产品:import mechanize from bs4 import BeautifulSoup fr ...

  5. Python 脚本转成.exe文件

    第一步就是最好用编译器(以下是Pycharm)打开你要转成.exe的.py文件的终端输入: 第二步(用编译器的好处是这步不出错,用cmd下载成功后可能出现找不到Pyinstaller的错误) 此处需要 ...

  6. python生成dat文件_Ra-使用Python脚本生成shape.dat文件

    #!/usr/bin/env python # -*- coding: UTF-8 -*- """ 该代码主要用来生成球形的shape.dat,用于ddscat的计算 & ...

  7. python总是提示缺少模块_python打包生成的exe文件运行时提示缺少模块的解决方法...

    事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个exe程序,但是运行时提示我缺 少bs4模块然后我就去查pyin ...

  8. python打包exe后缺少模块_python打包生成的exe文件运行时提示缺少模块的解决方法...

    python打包生成的exe文件运行时提示缺少模块的解决方法 事情是这样的我用打包命令:pyinstaller -F E:\python\clpicdownload\mypython.py打包了一个e ...

  9. 【Python实用技巧】如何将Python脚本打包成exe可执行文件?

    相信大家也有过这样的困惑,本来已经使用Python写好了脚本代码,又不想公开代码逻辑,但又要给别人使用这些功能? 这可怎么办呢? 有没有什么办法,可以将Python脚本打包成一个exe文件,这样发布的 ...

最新文章

  1. 从智能交通到智能能源:智慧城市在7个方面的应用实践
  2. ABP官方文档翻译 6.1.3 异常处理
  3. openTLD算法在opencv3的PatchGenerator
  4. 如何将DATASET的数据导出到XML文件,并直接下载
  5. time,atoi,strstr
  6. 每日英语:Relationship Repair: 10 Tips for Thinking Like a Therapist
  7. WLAN与WIFI的区别
  8. Web前端开发应该避免的几个思维误区
  9. android 的webview解析
  10. 好用的ToolStripManager类
  11. android 文件上传工具类,Android快速开发架构PlanA(五),文件上传下载了解一下...
  12. [导入]ASP.NET AJAX 说明文档-客户端引用-全局命名空间-JavaScript 基础类型扩展-Array 类型扩展...
  13. Socket长连接和短连接的区别
  14. jquery.seat-charts.1.1.15 选座座位插件的方法介绍
  15. 【项目预估】PERT(计划评审技术)
  16. Assemble(王爽)——nasm 和 masm的一些简单区分
  17. java生成word文档 图片_java生成带有图片的word的文档-Go语言中文社区
  18. 微信赚钱越来越难?该如何转型?
  19. 如何判断程序的复杂程度:时间和空间复杂度
  20. vscode你最后一个编辑器_这几个插件,让你的 vscode更牛逼

热门文章

  1. Orchard源码分析(5.3):EndRequest事件处理(DefaultOrchardHost.EndRequest方法)
  2. PLSQL 连接Oracle11g (64位)
  3. Working with Latex under Emacs
  4. QT 5.3 VS2010 中文
  5. 基于visual Studio2013解决面试题之1102合并字符串
  6. 委托函数《重构》----处理概括关系
  7. asp.net js 提示信息封装函数
  8. Jmeter跨线程组调用变量
  9. 位运算:二进制中1的个数
  10. Ubuntu中开启MySQL远程访问功能,并将另一个数据库服务器中的数据迁移到新的服务器中...