将python打包成exe的程序有很多,比如py2exe、PyInstaller等等,但是到目前为止,它们对python3.1支持的都不好,所以这里我要介绍一下cx_freeze 4.2.2,它还能支持跨平台,可以在windows和linux运行。

cx_freeze的下载网址为 http://sourceforge.net/projects/cx-freeze/files/ ,要根据已安装的python版本进行选择。比如我使用的是python3.1,所以就要下载cx_Freeze-4.2.2.win32-py3.1.msi这个文件。运行这个安装包后,相关程序就会被拷贝到python的目录下。主要在两个地方,一个是C:/Python31/Scripts,另一个是C:/Python31/Lib/site-packages/cx_Freeze

在以前版本的cx_Freeze中,是通过FreezePython.py这个脚本将py转换为exe,而在4.2.2这个版本中,FreezePython.py已经不见了,主要的工作交给了C:/Python31/Scripts下的cxfreeze.bat来完成。

使用cx_Freeze完成python打包exe主要有两种方法:

第一种,直接运行cxfreeze.bat通过:

先进入cmd命令行,进入C:/Python31/Scripts目录,然后运行cxfreeze.bat -h 就可以看到它的使用说明了。我们可以用cx_freeze自己的sample做个试验。

进入到c:/python31/scripts/下,运行

cxfreeze C:/Python31/Lib/site-packages/cx_Freeze/samples/PyQt4/PyQt4app.py --install-dir=d:/123

pytqt4app.py就会被打包成exe,并且它所用到的库文件,也被一并考到了d:/123目录下。

第二种,方法,运行setup.py:

在cxfreeze附带的例子 C:/Python31/Lib/site-packages/cx_Freeze/samples/PyQt4 中,有一个setup.py文件,打开这个文件,我们发现其内容为:

view plaincopy to clipboardprint?
  1. import sys
  2. from cx_Freeze import setup, Executable
  3. base = None
  4. if sys.platform == "win32":
  5. base = "Win32GUI"
  6. setup(
  7. name = "simple_PyQt4",
  8. version = "0.1",
  9. description = "Sample cx_Freeze PyQt4 script",
  10. executables = [Executable("PyQt4app.py", base = base)]) #PyQt4app.py即为要打包的文件

import sys from cx_Freeze import setup, Executable base = None if sys.platform == "win32": base = "Win32GUI" setup( name = "simple_PyQt4", version = "0.1", description = "Sample cx_Freeze PyQt4 script", executables = [Executable("PyQt4app.py", base = base)]) #PyQt4app.py即为要打包的文件

通过运行这个脚本,就可以自动的完成打包工作:

比如,我们进入 C:/Python31/Lib/site-packages/cx_Freeze/samples/PyQt4目录下,

运行

setup.py build

之后,在此目录下会出现一个build/exe.win32-3.1目录,该目录下即可看到打包完成的exe文件了。我们要想对自己的脚本打包,将这个setup.py 拷贝过去,再将其中

executables = [Executable("PyQt4app.py", base = base)])

的PyQt4app.py改为自己的脚本名即可。

打包过程中出现的问题:

对中文支持的问题,如果脚本中存在中文,且编码格式没有特别指出,打包的过程中会出现: UnicodeDecodeError: 'utf8′ codec can't decode bytes in position 1602: invalid data 这类的错误,在http://www.cnblogs.com/xinzaitian/archive/2010/12/10/1902481.html这篇博文中,作者提到必须将中文删除掉。

其实中文字符可以保留,只要在脚本文件的行首加上:

#!/usr/bin/env python

#coding=utf-8

就可以了

点击生成的exe文件是否可以使用了!很爽吧!怎么觉得启动的时候后面有个黑糊糊的窗口不舒服?那你在生成命令里面加个参数吧!加一个参数base-name设为 win32gui

例子:
    cxfreeze hello.py --target-dir dist --base-name=win32gui

另外的一个问题是,打包好的exe文件拿到 “桌面”或者别的中文路径下运行,就会弹出一个窗口显示cannot get zipimporter instance,这个到目前为止还没有找到好的解决方法

转载于:https://www.cnblogs.com/lanzhi/p/6468666.html

将python3.1+pyqt4打包成exe相关推荐

  1. 解决python3.7.2中pyinstall打包成exe文件工具的问题

     首先介绍一下可以打包Python代码的工具: py2exe: 这个是知名度最高的,但是好像不太适合新手,需要各种库,用起来比较繁琐,不推荐. pyinstaller : 可以只是生成单独的可执行程序 ...

  2. python3编译成exe运行_python3.x的程序如何打包成exe可执行文件

    最近有人问我,如何将编写的python打包成exe程序.使用pip install pyinstaller,安装了pyinstaller3.3.在网上找了个教程,将程序打包成了exe文件,但是在执行文 ...

  3. mac python3打包成窗体程序_使用pyinstaller将python程序打包成exe/苹果软件的方法与异常解决 - pytorch中文网...

    一.安装pyinstaller 通过清华镜像安装比较快 # 二者选其一执行,第二条快 pip3 installer pyinstaller # 清华镜像安装 # pip3 install -i htt ...

  4. python3打包成exe怎么给别人用_pyinstaller 打包python文件成.exe程序

    使用pycharm写好的代码,每次都要使用pycharm来执行比较麻烦,打包成.exe程序后可以直接运行,还可以发到别的电脑上执行,比较方便. 1.打开cmd命令提示符窗口,cd到pip.exe所在的 ...

  5. 把python语言翻译出来_Python语言实现翻译小工具(Python打包成exe文件)

    本文主要向大家介绍了Python语言实现翻译小工具(Python打包成exe文件),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 1.环境 windows10 python3.5 ...

  6. py文件打包或apk_Python文件打包成exe很简单,如果安卓手机也能运行的软件你会吗...

    前言 我相信很多小伙伴都知道怎么将Python的文件打包成exe,而且这个也非常的简单,一行代码就能轻松搞定:pyinstaller -F xxx.py 但是如果我们用Python开发一个小游戏或者一 ...

  7. linux添加py自启动脚本_PyInstaller详解:将.py文件打包成exe文件

    1. 安装 本人系统是:Ubuntu16.04,python3.7. 安装的pyinstaller==3.5, UPX==upx-3.95-amd64_linux.tar.xz.不安装对应版本的pyi ...

  8. python 如何将代码打包成exe可执行程序?(导出为exe可执行文件)pyinstaller

    步骤 1 安装pyinstaller pip install pyinstaller 或pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ...

  9. python自带编译器如何生成exe_别再问我怎么Python打包成exe了!

    也许我们不一定是专业的程序员,但是我们仍然可以通过代码提高我们的效率,尽量少加班,多陪陪媳妇.再不行,让代码替我们干着重复的工作,我们有节省出来的时间打游戏不好嘛,是吧,哈哈哈. 但是呢,我们开发的脚 ...

最新文章

  1. 在抖音推荐算法组工作的体验
  2. flask传值给js
  3. OSPF全国网络互联实施方案
  4. 【CF应用开发大赛】微博社交简历
  5. py提取文字中的时间_一次提取100个视频中的文案!节省时间有绝招在手视频文案提取...
  6. boost::sort模块实现spreadsort 双排序示例
  7. Ubuntu-Python2.7安装 scipy,numpy,matplotlib
  8. asp.net web services
  9. 命运2服务器维护时间2019,《命运2》今晚将停机维护 为多平台共用存档做准备...
  10. 动态链接MFC引发的血案
  11. dw相对路径怎么改_密云ETL怎么收费
  12. 淘宝API开发系列--开篇概述
  13. 三星android11推送,三星国行S10系列正式推送One UI 3正式版,基于安卓11打造
  14. Vivado入门创建工程之----自定义ip及其使用
  15. 缠论中枢python源码_缠论中枢主图指标 源码 通达信 贴图 自动画笔
  16. Frequent Pattern Mining(频繁模式挖掘) - Aprior挖掘算法
  17. 车载网络: 常见车载网络
  18. Scrapy爬虫之中文乱码问题
  19. PADS VX2.8 敷铜自动倒角的使用方法
  20. 面向微服务架构与传统架构、SOA对比,以及云化对比

热门文章

  1. [导入][转]好企业是什么样?
  2. 计算机桌面是哪个盘,windows的桌面文件夹是哪个?
  3. 非计算机专业的人要如何学python?
  4. 用 HAProxy 实现网络流量的负载平衡
  5. 想学单片机怎么入手?学单片机前先学什么?
  6. 如何用matlab读取npz文件,Python Numpy中数据的常用的保存与读取方法
  7. HDU2032(杨辉三角)
  8. 莫队 ---- 值域分块处理优化字典树上的查询 杭电多校2021第二场1004 i love counting
  9. 主席树 ---- 2021 ICPC 昆明 M.Stone Games [主席树 + 暴力]
  10. 模板 - Min_25 筛法求素数和