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:\temp\py>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:\temp\py>python setup.py py2exe

running py2exe

 

  3 missing Modules

  ------------------

? readline                            imported from cmd, code, pdb

? win32api                            imported from platform

? win32con                            imported from platform

Building 'dist\hello.exe'.

Building shared code archive 'dist\library.zip'.

Copy c:\windows\system32\python34.dll to dist

Copy C:\Python34\DLLs\unicodedata.pyd to dist\unicodedata.pyd

Copy C:\Python34\DLLs\_socket.pyd to dist\_socket.pyd

Copy C:\Python34\DLLs\_ctypes.pyd to dist\_ctypes.pyd

Copy C:\Python34\DLLs\_bz2.pyd to dist\_bz2.pyd

Copy C:\Python34\DLLs\pyexpat.pyd to dist\pyexpat.pyd

Copy C:\Python34\DLLs\_ssl.pyd to dist\_ssl.pyd

Copy C:\Python34\DLLs\_hashlib.pyd to dist\_hashlib.pyd

Copy C:\Python34\DLLs\select.pyd to dist\select.pyd

Copy C:\Python34\DLLs\_lzma.pyd to dist\_lzma.pyd

运行这个命令成功之后,会在当前的目录下面创建一个发布的目录dist,所有需要发布的文件就会拷贝到此目录下面。

17.4 执行生成的exe程序

经过上面的步骤,就可以进入目录dist下面进行运行exe程序了,如下:

 F:\temp\py\dist 的目录

 

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:\temp\py\dist>hello.exe

hello World

运行成功之后,与前面使用python hello.py是一样的结果,不过这个目录内容就可以发布到不同的电脑上进行运行,并不再需要安装python的安装程序。

 

蔡军生  QQ:9073204  深圳

再分享一下我老师大神的人工智能教程吧。零基础!通俗易懂!风趣幽默!还带黄段子!希望你也加入到我们人工智能的队伍中来!http://www.captainbed.net

猜你喜欢

转载自www.cnblogs.com/skiwnchh/p/10516104.html