内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

Python编程从0到1:cx_freeze打包遇到的那些坑

2018-04-16 17:21 出处:清屏网 人气: 评论(0

今天尝试用cx_freeze打包,排了一下午的坑,记录于此。

1.为什么用cx_freeze?

cx_freeze虽然有一些坑,但总体上是很好用是,特别是基于python3以上的GUI程序打包,应该是cxfreeze最好用。

2. 如何安装?

如何安装,可以网上找文档,但最关键的是:

下载cx_Freezej时,一定要对应python版本。

下载地址: http://sourceforge.net/projects/cx-freeze/files/

切记!!一定要根据自己的系统类型和Python版本下载合适的类型,类型稍微有不对应,就会不可理解的异常。

我原来就是安装了多个python版本,导致异常,最后把所有python删除后,根据cx_freeze要求重新下载才没有异常。

3.有哪些是会遇到的常见问题

1 --init-script指定的启动文件路径必须用绝对路径,否则会提示找不到init script。

2 只能指定一个要打包的模块,也就是启动模块。只要指定一个,其它的会自动关联。

3 所有.py文件都不能有中文字符,否则会出现编码异常。

4 启动执行的文件中不要有下面这种判断,否则可执行文件执行会没有任何效果。

if name == " main ":

main()

5 如果用到类似lxml这样的第三方库,可能会出现找不到 _ elementpath模块的错误。需要在某个.py文件中写上

from lxml import _elementpath as DONTUSE

6 在程序中引入各种包。安装后,程序会提示找不到各式各样的包,要在源代码中引入这些包。import XXX

4.配置文件setup.py的范式

import sys
import os
from cx_Freeze import setup, Executable

os.environ['TCL_LIBRARY'] = r'C:\Python33\tcl\tcl8.5'
os.environ['TK_LIBRARY'] = r'C:\Python33\tcl\tk8.5'

include_files = [
    r"'C:\Python33\DLLs\tcl85.dll",
    r'C:\Python33\Python35-32\DLLs\tk85.dll'
]


base = None
if sys.platform == 'win32':
    base = 'Win32GUI'

executables = [
    Executable('mainApp.py', base=base)
]

packages = []
include_files=['seen.json', 'siteconfig.json', 'appConfig.json']

setup(
    name = "编译助手1.0",
    version = "1.0",
    description = 'desc of program',
    executables = executables
)

5. 程序打包后的效果

1.jpg

2.jpg

3.jpg


分享给小伙伴们:
本文标签: cx_freezePython打包

相关文章

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

CopyRight © 2015-2016 QingPingShan.com , All Rights Reserved.

清屏网 版权所有 豫ICP备15026204号