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工具已经使用BitTorrentSpamBayes等软件上。不过在使用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程序发布的主要内容,如果未能解决你的问题,请参考以下文章

如何打包和发布Python程序

怎么把python程序打包成操作系统?

python打包后的程序在window下运行360报毒

Python学习笔记-打包发布Python模块或程序,安装包

请问Delphi 7.0开发的程序如何打包?

使用 Python 的“独立”Android 应用程序?