醉酒青牛 发表于 2015-9-19 15:30:13

零基础教你利用cx_Freeze将py文件打包成exe文件

小牛有话说:

首先小牛写这个帖子必须先向~风介~版主大大的这个帖子利用cx_Freeze将py文件打包成exe文件致敬,下面所讲内容主要取材于版主这个帖子。里面整个过程已经写得很明白了很具体了,小牛之所以还要发帖子是因为自己在关于程序打包这块是零概念,当初钻研版主大大的帖子时走了很多弯路,花了很多精力和时间,做此贴一方面是让自己记住自己在学习新知识当中没有注意到的点,另一方面也使得像小牛这样对于打包是零概念的鱼油们能有丁点的借鉴意义。


本期主要内容导读

Python是一个跨平台的代码语言,我们写完一个py文件后原则上是可以脱离Python的环境在任何一个计算机系统上运行的,而实现这一步就需要打包工具,将我们写的py文件编译成可执行文件,例如在windws下就是exe文件。这里我们推荐的Python打包工具就是cxfreeze。下面我们就如何下载安装该软件,并用此软件对py文件进行打包过程进行详细阐述。


1. 下载适合你Python程序的cxfreeze版本

下载该软件请复制此cxfreeze官方网站链接并打开:https://pypi.python.org/pypi?:action=display&name=cx_Freeze&version=4.3.3选择下载版本注意下一个和你Python程序版本配套的,比如我安装的版本是Python 3.4.0rc3,那么我要选择的cxfreeze版本就是cx_Freeze-4.3.3.win32-py3.4.exe。


2. 安装cxfreeze软件

下载该软件后,双击该安装包进行安装(最好以管理员身份进行安装吧),安装位置一定要在你安装Python的程序目录下,例如我的是E:\Python34\,那么cxfreeze程序也默认在此目录下。安装完毕后,在安装路径(例如我的路径是E:\Python34\Scripts)的Scripts文件夹下查看是否存在cxfreeze.bat文件,如果不存在就创建一个记事本文件,在里面写入以下这两行字符,中间空一行,第二行中第一个路径代表python.exe所在路径,第二个是cxfreeze所在路径。

@echo off

E:\Python34\python.exe E:\Python34\Scripts\cxfreeze %*

3. 测试cxfreeze软件是否安装成功

首先必须明确后面的打包过程都是在windows系统下的shell里面进行的,通过cmd打开Windows命令输入框,首先将当前工作路径转到Scripts下,具体操作为先输入 E: 回车,再输入 cd Python34\Scripts 回车即可。这时候输入cxfreeze -h 回车,这个是cxfreeze的提示操作,如果屏幕出现很多字符就说明安装正确。这些字符就是一些常用的调用语句,这里我们要用到的有 --target-dir=DIR ,将打包好的执行文件(不仅包含exe文件,还有一些库文件)放到指定目录下。


4. 将py文件打包成可执行文件

当前面测试发现软件安装成功之后,就可以打包文件了。在这里我们要求py文件最好放在根目录下,例如这样一段代码保存成的一个叫try.py文件放在D盘根目录下时,我们想将其打包后放在D盘下的test文件下(如果你没有定义test文件,程序会自动创建)我们需要输入的命令是
cxfreeze d:\try.py --target-dir d:\test回车即可。

def sum(a,b):
    sum1 = a + b
    return sum1
a = int(input('请输入一个整数'))
b = int(input('请再输入一个整数:'))
m = sum(a,b)
print('这是一个测试程序!')
print(m)

5. 一点补充

如果你的py程序里面包含easygui模块的函数,那么需要再加一句话,前面的打包语句就可以写成
cxfreeze d:\try.py --target-dir d:\test --base-name win32gui回车即可。


6. 常见错误汇总

py文件最好不要太长,且不要出现下划线,例如Python_mat_224.py文件名可能程序识别不了而报无法找到该文件的错误。

醉酒青牛 发表于 2015-9-19 22:20:42

自己先顶一下,希望大家多捧捧场

太空军校生 发表于 2015-9-20 19:22:01

占时还没对打包文件进行接触,
先放着,等用到的时候在好好学习。

~风介~ 发表于 2015-9-20 21:25:49

不错嘛,有毅力,给你32个赞!{:7_123:}

醉酒青牛 发表于 2015-9-20 22:51:43

~风介~ 发表于 2015-9-20 21:25
不错嘛,有毅力,给你32个赞!

感谢版主,感觉有大家的支持会促使自己坚持下去,而坚持下去肯定会比不坚持好!赠人玫瑰,手有余香!

山歌 发表于 2015-9-22 20:53:39

支持!榜样!

醉酒青牛 发表于 2015-9-22 21:19:49

山歌 发表于 2015-9-22 20:53
支持!榜样!

感谢,如果觉得还好的话,可以订阅小牛的淘贴来支持小牛哦,这样小牛就更有动力去整理学习中的点点滴滴和大家一起分享了!

山歌 发表于 2015-9-23 08:47:02

醉酒青牛 发表于 2015-9-22 21:19
感谢,如果觉得还好的话,可以订阅小牛的淘贴来支持小牛哦,这样小牛就更有动力去整理学习中的点点滴滴和 ...

好的!

醉酒青牛 发表于 2015-9-23 12:55:46

山歌 发表于 2015-9-23 08:47
好的!

谢谢,以后一起努力喽{:5_95:}

herdboy 发表于 2015-9-23 16:10:33

支持牛哥

醉酒青牛 发表于 2015-9-23 17:09:32

herdboy 发表于 2015-9-23 16:10
支持牛哥

感谢支持,哈哈

cjfj114 发表于 2015-12-1 19:36:27

支持 牛大   虽然暂时用不到这个还在学习阶段

zerco 发表于 2015-12-3 12:29:53

sd1475178 发表于 2015-12-30 15:42:15

先记下,待以后打包的时候用

charlotte~~ 发表于 2016-1-21 17:00:38

看看~~~

夏天的凤 发表于 2016-2-22 17:40:12

加油加油

wj1273285461 发表于 2016-3-28 17:18:03

又学到新东西了

poiulp 发表于 2016-4-1 14:18:25

谢谢!

muchenxu 发表于 2016-4-5 16:30:28

顶一个先,学习中

薛定谔的猫111 发表于 2016-4-5 20:16:05

谢谢分享
页: [1] 2 3
查看完整版本: 零基础教你利用cx_Freeze将py文件打包成exe文件