将python3.1+pyqt4打包成exe

作者:佚名 上传时间:2019-05-13 版权申诉

将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文件,打开这个文件,我们发现其内容为:

  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,这个到目前为止还没有找到好的解决方法

免责申明:文章和图片全部来源于公开网络,如有侵权,请通知删除 server@dude6.com

用户评论
相关推荐
python3.1+pyqt4包成exe
将python打包成exe的程序有很多,比如py2exe、PyInstaller等等,但是到目前为止,它们对python3.1支持的都不好,所以这里我要介绍一下cx_freeze 4
java程序打包成exe
将java打包成exe将java打包成exe将java打包成exe
RAR
3.39MB
2020-10-30 18:41
Python程序打包成.exe文件
前面一片文章详细介绍了用Python制作自己二维码的过程,这篇我们简单介绍一下怎样将上述python程序打包成 .exe文件 1、基本环境: windows10+python3.6 2、第三方库安装:
PDF
198KB
2020-12-22 13:32
exe4jJAVA打包成exe文件
exe4j用于将JAVA打包成exe文件,建议和FATJAR一起使用
RAR
0B
2019-04-09 02:28
JarToexejar文件打包成exe文件
将jar文件转化为exe 可以自由使用和转载发布。转载发布原始出处为:http://www.regexlab.com/jar2exe/
ZIP
0B
2018-12-25 23:32
py项目打包成exe.txt
这个文件写的是将python写好的py程序快速的打包为exe文件。
TXT
132B
2020-09-14 10:03
Pyinstallerpy打包成exe的实例
下面小编就为大家分享一篇Pyinstaller将py打包成exe的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
PDF
71KB
2020-11-22 01:01
如何Python程序打包成exe
博客简介 本篇博客将介绍如何将Python程序打包成一个在其他电脑中不需要运行安装环境即可直接运行的exe文件,步骤如下: 安装PyInstaller库 准备一个py程序 准备一张图片ico 输入指令
PDF
720KB
2020-12-31 05:00
winform应用程序打包成exe文件
将写好的winform应用程序打包成一个.EXE结尾的可执行文件,可以安装到自己的电脑上面,有图和文字说明
DOC
0B
2019-05-13 08:34
exe再打包成安装文件
可以将双击立马执行的exe文件打包成需要安装之后才能执行的exe文件
EXE
0B
2019-05-17 04:56