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的更多相关文章

  1. DirectX11笔记(三)--Direct3D初始化代码

    原文:DirectX11笔记(三)--Direct3D初始化代码 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/u010333737/article ...

  2. pyqt5 笔记(四)cx_Freeze 实现代码打包exe

    下载地址:https://pypi.python.org/pypi/cx_Freeze 教程:http://www.cnblogs.com/xinzaitian/archive/2010/12/10/ ...

  3. windows环境下把Python代码打包成独立执行的exe

    windows环境下把Python代码打包成独立执行的exe可执行文件   有时候因为出差,突然急需处理一批数据.虽然写好的脚本存储在云端随用随取,然而编译的环境还需要重新搭建,模块也需要重新装载,从 ...

  4. JSmooth 将java代码打包成exe

    JSmooth 将java代码打包成exe 前言 java代码写了这么多了,但由于jdk的限制,我只能在jdk电脑上运行项目.所以最近在研究打包exe这个问题,今天终于实现了. JSmooth下载 前 ...

  5. Python3+PYQT5 实现并打包exe小工具(1)

    前言: 由于项目原因,配置测试环境与正式环境切换频率很高,固写了一键切换环境的工具.用于记录. 实现逻辑: 1.读取注册表中客户端的安装目录,把固定的环境配置文件添加到固定目录下实现配置测试环境: 2 ...

  6. 将Java代码打包成jar文件转换为.exe可执行程序方法

    ​ 做完学生管理系统后我想将代码打包成一个可执行程序,那样就可以直接点击在Windows下运行了,下面就跟大家分享下打包方法. 将Java的代码转换成 .exe 文件需要先把代码打包成 jar 文件然 ...

  7. java代码打包成jar以及转换为exe

    教你如何把java代码打包成jar文件以及转换为exe可执行文件 1.背景: 学习java时,教材中关于如题问题,只有一小节说明,而且要自己写麻烦的配置文件,最终结果却只能转换为jar文件.实在是心有 ...

  8. PyQt5环境搭建及cx_freeze打包exe

    Python的图形库也有好几个,Qt文档和使用面还是要广一些. 打包成可执行文件的也有好几个,PyInstaller用的比较多,但是PyInstaller目前还不支持Python3.6(开发版支持3. ...

  9. 《MFC游戏开发》笔记三 游戏贴图与透明特效的实现

    本系列文章由七十一雾央编写,转载请注明出处. 313239 作者:七十一雾央 新浪微博:http://weibo.com/1689160943/profile?rightmod=1&wvr=5 ...

随机推荐

  1. RequireJS加载ArcGIS API for JavaScript

    1.在main.js中配置ArcGIS API for JavaScript require.config({ paths : { //arcgisJS "esri": " ...

  2. Hive优化

    hive.optimize.cp=true:列裁剪hive.optimize.prunner:分区裁剪hive.limit.optimize.enable=true:优化LIMIT n语句hive.l ...

  3. Windows高精度时间

    目录 第1章计时    1 1.1 GetTickCount    1 1.2 timeGetTime    1 1.3 QueryPerformanceCounter    1 1.4 测试     ...

  4. SAP MM常用表

    EBAN 采购申请 MM模块EBAN_采购申请 EBKN 采购申请帐户设置 MM模块EBKN_采购申请帐户设置 EBUB 有关物料的运输请求的索引 MM模块EBUB_有关物料的运输请求的索引 EINA ...

  5. linux笔记:linux常用命令-用户管理命令

    用户管理命令:useradd(添加用户) 用户管理命令:passwd(设置和修改用户密码) 用户管理命令:who(查看所有登录用户的信息)

  6. hdu 4548 筛法求素数 打表

    题目:http://acm.hdu.edu.cn/showproblem.php?pid=4548 Problem Description 小明对数的研究比较热爱,一谈到数,脑子里就涌现出好多数的问题 ...

  7. Java常用集合类详解

    在Java中有一套设计优良的接口和类组成了Java集合框架,使程序员操作成批的数据或对象元素极为方便.所有的Java集合都在java.util包中. 在编写程序的过程中,使用到集合类,要根据不同的需求 ...

  8. java设计之简单的JAVA计算器

    做这个东西主要是为了练习一下以前学习过的java Swing,所以那些复杂的算法就没有加载到里面去........ 先展示一下效果....,额,当然不是这个样子....   ---> 代码: p ...

  9. 选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中

    选择列表中的列无效,因为该列没有包含在聚合函数或 GROUP BY 子句中 T-SQL核心语句形式: SELECT     --指定要选择的列或行及其限定  [INTO ]      --INTO子句 ...

  10. java集合——Collection接口

    Collection是Set,List接口的父类接口,用于存储集合类型的数据. 2.方法 int size():返回集合的长度 void clear():清除集合里的所有元素,将集合长度变为0 Ite ...