pyqt5 笔记(三)py2exe 实现代码打包exe
python3.4
安装64位的版本 py2exe
下载地址: https://pypi.python.org/pypi/py2exe/0.9.2.0#downloads
cmd——>进入pyfile/pyqt5的文件目录下,dir,执行python setupp.py py2exe
很好的教程: http://www.doc88.com/p-7357353064359.html
http://www.cnblogs.com/qq78292959/p/3510186.html
setupp.py
from distutils.core import setup
import py2exe #sys.argv.append('py2exe')
packages=[]
py2exe_options = { #py2exe中的options字典
"includes": ['sip'],
"dll_excludes": ["MSVCP90.dll",],
"compressed": 2,
"optimize": 2,
"ascii": 0,
"bundle_files": 3,
"packages":packages,
"dist_dir":"MyPrpgram" #生成MyProgram文件夹,放好多代码
} setup( #py2exe拓展的distutils setup参数:
windows = [ #列表,包含需要被转换为GUI exe的脚本
{
"script":"index.py",
# "icon_resources":[(1,"myicon.ico")] #为程序添加图标
}
],
zipfile = "myzip.zip", #产生共享压缩文件的名字;可以指定一个子目录:默认是'library,zip';如果值为none,文件将会被打包进可执行文件而不是library.zip
options = {'py2exe': py2exe_options} #字典,
)
遇到问题:

UnicodeDecodeError:'gbk' codec can't decode byte 0xaf illegal multibyte sequence
尝试解决1:试了很多种编码方式 # -*- coding:utf-8 -*- # -*- coding: gbk -*-
尝试解决2:在windows的cmd中设置支持UTF-8编码
CHCP命令:显示or设置活动代码页的编号
GB2312 对应的是936
UTF8对应的是65001
输入65001,然后再cmd窗口上右键,选择属性,设置字体,选择Lucida Console 即可~
尝试解决3:添加
import sys
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf-8')
都失败~
分析问题:
报错的异常是
UnicodeDecodeError: ‘gbk’ codec can’t decode bytes in position 2-3: illegal multibyte sequence
UnicodeDecodeError: Unicode的解码(Decode)出现错误(Error)了,
- 你当前正在处理某种编码类型的字符串
- 此处你要处理字符串,是想要将该字符串去解码decode,变成Unicode
- 但是将该字符串解码变成Unicode期间,却出错了
‘gbk’ codec can’t decode:
- 你此处,要将字符串解码为Unicode,是以gbk编码的方式去解码(该字符串变成Unicode)的
- 但是此处通过gbk的方式,却无法解码(can’t decode )
- 注:此处的codec,意思是:编解码(器),是Python内部的模块,用来编码或解码(字符串)的
bytes in position 2-3 : 定位具体错误的位置
illegal multibyte sequence : 非法的,多字节,序列。没法解码
最终解决办法:去除代码中所有中文字符,包括注释,然后就可以了。。。。
遇到问题:This application failed to start because it could not find or load the Qt platform plugin "windows"
原因是环境变量没有添加。
在环境变量中增加:
QT_QPA_PLATFORM_PLUGIN_PATH
C:\Python34\Lib\site-packages\PyQt5\plugins <<-------PyQt5的plugins文件夹所在位置(新建系统变量)
简单的小例子
sett.py
__author__ = 'yangyang5'
from distutils.core import setup
import py2exe setup(
console=['hi.py'] #列表,包含需要被转换为控制台exe的脚本
)
hi.py print('hello world~')
去cmd中执行 python sett.py py2exe
之后输出一系列打包过程
成功后,会生成build和dist2个文件夹,build是工作时的空间,完成后会自动消失。dist中有exe和运行时需要的文件
试一试打包成功的exe
进入cmd,.dist文件夹,运行 hi.exe
成功~
pyqt5 笔记(三)py2exe 实现代码打包exe的更多相关文章
- DirectX11笔记(三)--Direct3D初始化代码
原文:DirectX11笔记(三)--Direct3D初始化代码 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010333737/article ...
- pyqt5 笔记(四)cx_Freeze 实现代码打包exe
下载地址:https://pypi.python.org/pypi/cx_Freeze 教程:http://www.cnblogs.com/xinzaitian/archive/2010/12/10/ ...
- windows环境下把Python代码打包成独立执行的exe
windows环境下把Python代码打包成独立执行的exe可执行文件 有时候因为出差,突然急需处理一批数据.虽然写好的脚本存储在云端随用随取,然而编译的环境还需要重新搭建,模块也需要重新装载,从 ...
- JSmooth 将java代码打包成exe
JSmooth 将java代码打包成exe 前言 java代码写了这么多了,但由于jdk的限制,我只能在jdk电脑上运行项目.所以最近在研究打包exe这个问题,今天终于实现了. JSmooth下载 前 ...
- Python3+PYQT5 实现并打包exe小工具(1)
前言: 由于项目原因,配置测试环境与正式环境切换频率很高,固写了一键切换环境的工具.用于记录. 实现逻辑: 1.读取注册表中客户端的安装目录,把固定的环境配置文件添加到固定目录下实现配置测试环境: 2 ...
- 将Java代码打包成jar文件转换为.exe可执行程序方法
做完学生管理系统后我想将代码打包成一个可执行程序,那样就可以直接点击在Windows下运行了,下面就跟大家分享下打包方法. 将Java的代码转换成 .exe 文件需要先把代码打包成 jar 文件然 ...
- java代码打包成jar以及转换为exe
教你如何把java代码打包成jar文件以及转换为exe可执行文件 1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有 ...
- PyQt5环境搭建及cx_freeze打包exe
Python的图形库也有好几个,Qt文档和使用面还是要广一些. 打包成可执行文件的也有好几个,PyInstaller用的比较多,但是PyInstaller目前还不支持Python3.6(开发版支持3. ...
- 《MFC游戏开发》笔记三 游戏贴图与透明特效的实现
本系列文章由七十一雾央编写,转载请注明出处. 313239 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5 ...
随机推荐
- Ajax中eval的使用详解
定义和用法 Eval它是用来计算某个字符串,并且执行其中的JavaScript代码. 语法 1) eval函数接受一个string这个参数,并且这个参数是必须的,这个参数就是要计算的这个字符串.它里面 ...
- JavaScript设计模式与开发实践 - 策略模式
引言 本文摘自<JavaScript设计模式与开发实践> 在现实中,很多时候也有多种途径到达同一个目的地.比如我们要去某个地方旅游,可以根据具体的实际情况来选择出行的线路. 如果没有时间但 ...
- java 抽象类
抽象类: 1)函数没有方法体,就必须用abstract修饰. 2)抽象函数所在的类必须也是抽象的. 3)非抽象的类继承于抽象类,必须实现其全部方法. 4)抽象类中可以存在抽象方法,也可以不存在. 5) ...
- 《Java程序设计》第十周学习总结
20145224 <Java程序设计>第十周学习总结 网络编程 ·网络编程就是在两个或两个以上的设备(例如计算机)之间传输数据.程序员所作的事情就是把数据发送到指定的位置,或者接收到指定的 ...
- 《javascript高级程序设计》第六章 Object Creation VS Inheritance
6.1 理解对象 6.1.1 属性类型 6.1.2 定义多个属性 6.1.3 读取属性的特性6.2 创建对象 6.2.1 工厂模式 6.2.2 构造函数模式 6.2.3 原型模式 6.2.4 组合使用 ...
- Ubuntu下配置和编译cpp-ethereum客户端
Ethereum,中文翻译是“以太坊”,是一个公有区块链的开源项目.因为以太坊是基于P2P网络所以没有中心节点,所以用户仅安装Ethereum客户端即可连入Ethereum公共网络或者在自己的test ...
- socket头文件
一. 三种类型的套接字:1.流式套接字(SOCKET_STREAM) 提供面向连接的可靠的数据传输服务.数据被看作是字节流,无长度限制.例如FTP协议就采用这种.2.数据报式套接字(SOCKET ...
- 使用 Fresco加载图片
概念: ImagePipeline ——负责从网络.本地图片.Content Provider(内容提供者)或者本地资源那里获取图片,压缩保存在本地存储中和在内存中保存为压缩的图片 Drawee——处 ...
- HDU 2602(01背包)
Bone Collector Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- lmdb简介——结合MVCC的B+树嵌入式数据库
lmdb简介 lmdb是openLDAP项目开发的嵌入式(作为一个库嵌入到宿主程序)存储引擎.其主要特性有: 基于文件映射IO(mmap) 基于B+树的key-value接口 基于MVCC(Multi ...