17 打包Python程序发布
Posted skiwnchh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了17 打包Python程序发布相关的知识,希望对你有一定的参考价值。
分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net
17. 打包Python程序发布
Python程序都是脚本的方式,一般是在解析器里运行,如果要发布出去,需要提前安装解析器才可以运行,为了在Windows里方便发布,只要点击一个EXE文件运行,并且打包所需要库文件,这样发布给用户使用就会更方便。可以使用打包工具py2exe来做这样的事情,它是一个Python程序在Windows发布的工具包,可以把Python脚本文件转换为exe文件,并且不再需要Python程序的安装。py2exe工具已经使用BitTorrent,SpamBayes等软件上。不过在使用py2exe工具时,需要安装Python程序才可以使用,因为它是使用Python语言来编写,并且需要使用Python库里的一些库。
在Python3.4里安装py2exe的工具,由于Python3.4里带有pip安装工具,只需要你的电脑是连接到网络上,打开Cmd.exe运行窗口,输入下面的命令:
pip install py2exe
按下回车键之后,就会自动从python网站下载,并安装,看到下面:
Installing collected packages: py2exe
Successfully installed py2exe-0.9.2.2
如果看到这些提示信息,说明已经安装py2exe成功了,万事具备,只欠东风。
17.1 创建你的脚本程序
在为了学习打包程序py2exe使用之前,你需要有一个可以打包的脚本程序,在这里是为了学习py2exe工具,因此只需要编写一个非常简单的脚本程序,就可以了,减少在脚本的复杂性,同时也减少了出错的可能性,因而来写一个比较简单的helloworld程序,如下:
#python 3.4
print(‘hello World‘)
然后把这个脚本保存为名称hello.py。在Windows里的Cmd.exe里执行如下命令:
F: emppy>python hello.py
hello World
可以确认脚本已经可运行,没有任何问题。
17.2 创建安装脚本程序(setup.py)
py2exe工具只是在原来Distutils工具之上进行扩展,并且进行一步优化,如果你使用过Distutils工具,就会知道下面的命令行:
python setup.py install
所以在py2exe工具里也需要一个像setup.py的脚本,脚本具体内容如下:
#python 3.4
from distutils.core import setup
import py2exe
setup(console=[‘hello.py‘])
在这个脚本里,第二行代码是从distutils库里导入setup函数。第三行代码是导出入py2exe模块。第四行代码是空行,用来分隔导入模块与实际运行代码。第五行代码是调用setup函数,主要创建控制台应用程序,它的入口主文件是hello.py文件。
17.3 运行脚本(setup.py)文件
在cmd.exe的窗口里运行下面的命令:
F: emppy>python setup.py py2exe
running py2exe
3 missing Modules
------------------
? readline imported from cmd, code, pdb
? win32api imported from platform
? win32con imported from platform
Building ‘disthello.exe‘.
Building shared code archive ‘distlibrary.zip‘.
Copy c:windowssystem32python34.dll to dist
Copy C:Python34DLLsunicodedata.pyd to distunicodedata.pyd
Copy C:Python34DLLs\_socket.pyd to dist\_socket.pyd
Copy C:Python34DLLs\_ctypes.pyd to dist\_ctypes.pyd
Copy C:Python34DLLs\_bz2.pyd to dist\_bz2.pyd
Copy C:Python34DLLspyexpat.pyd to distpyexpat.pyd
Copy C:Python34DLLs\_ssl.pyd to dist\_ssl.pyd
Copy C:Python34DLLs\_hashlib.pyd to dist\_hashlib.pyd
Copy C:Python34DLLsselect.pyd to distselect.pyd
Copy C:Python34DLLs\_lzma.pyd to dist\_lzma.pyd
运行这个命令成功之后,会在当前的目录下面创建一个发布的目录dist,所有需要发布的文件就会拷贝到此目录下面。
17.4 执行生成的exe程序
经过上面的步骤,就可以进入目录dist下面进行运行exe程序了,如下:
F: emppydist 的目录
2016/04/05 14:32 <DIR> .
2016/04/05 14:32 <DIR> ..
2016/04/05 14:32 23,552 hello.exe
2016/04/05 14:32 3,325,052 library.zip
2014/05/18 10:38 134,144 pyexpat.pyd
2016/04/05 14:32 2,734,592 python34.dll
2014/05/18 10:39 9,728 select.pyd
2014/05/18 10:38 758,784 unicodedata.pyd
2014/05/18 10:38 53,760 _bz2.pyd
2014/05/18 10:39 85,504 _ctypes.pyd
2014/05/18 10:39 781,824 _hashlib.pyd
2014/05/18 10:38 137,216 _lzma.pyd
2014/05/18 10:38 47,104 _socket.pyd
2014/05/18 10:39 1,204,736 _ssl.pyd
12 个文件 9,295,996 字节
2 个目录 11,034,742,784 可用字节
在这个目录找到hello.exe程序就可以进行运行,运行如下:
F: emppydist>hello.exe
hello World
运行成功之后,与前面使用python hello.py是一样的结果,不过这个目录内容就可以发布到不同的电脑上进行运行,并不再需要安装python的安装程序。
蔡军生 QQ:9073204 深圳
再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net
以上是关于17 打包Python程序发布的主要内容,如果未能解决你的问题,请参考以下文章