最近在学python,所以用python写了个脚本,但是这个程序现在还有太大的局限性,要使用就要先安装python环境比较麻烦。
所以我就想先把程序打包发布,常用的就是py2exe打包,所以打算这次也用它。好了,开始。。。。
1、进入python程序所在文件夹,如下图
2、在文件夹下写一个setup.py的python文件,内容如下
3、打开CMD窗口,将工作目录切换到python文件所在文件夹,并输入命令“python setup.py py2exe"
4、命令成功完成后,进入原python文件的文件夹下可看到新产生了两个文件夹,如图
5、进入dist文件夹,里面的example.exe就是我们需要的windows程序。
准备工作:
安装py2exe编写setup.py代码如下:
1 #-*-coding: UTF-8-*-
2 from distutils.core import setup
3 import py2exe
4 # Powered by www.pythontab.com
5 INCLUDES = []
6 options = {"py2exe" :
7 {"compressed" : 1,
8 "optimize" : 2,
9 "bundle_files" : 2,
10 "includes" : INCLUDES,
11 "dll_excludes": [ "MSVCP90.dll", "mswsock.dll", "powrprof.dll","w9xpopen.exe"] }}
12 setup(
13 options = options,
14 description = "车位管理系统",
15 zipfile=None,
16 console=[{"script": "park.py", "icon_resources": [(1, "logo.ico")] }],
17 )
具体的option和其它的选项是什么含意可以search一下,网上非常多的资料,我就不赘述了
下一步,运行命令:
1 python setup.py py2exe
编译完成后会在当前目录下生成一个dist目录,里面有park.exe文件,不过执行时并不成功
出现如下错误:
1 Traceback (most recent call last): 2 File "park.py", line 4, in <module> 3 File "zipextimporter.pyo", line 82, in load_module 4 File "pyquery.pyo", line 9, in <module> 5 File "zipextimporter.pyo", line 82, in load_module 6 File "cssselectpatch.pyo", line 6, in <module> 7 File "zipextimporter.pyo", line 82, in load_module 8 File "lxml\cssselect.pyo", line 8, in <module> 9 File "zipextimporter.pyo", line 98, in load_module 10 File "lxml.etree.pyx", line 72, in init lxml.etree (src/lxml/lxml.etree.c:156121) 11 ImportError: No module named _elementpath
在网上找了下解决方案,问题出在了lxml库。
不能正确找到路径,因为是lxml第三方库,要多加一条指令指定路径;将编译命令改为
1 python setup.py py2exe -p lxml,gzip
这里还多加了gzip,原因同lxml一样
最后执行生成的文件有park.exe和python27.dll,只要把这两个文件放到一个文件夹,然后就可以在任何一台电脑上运行啦。哈哈。有了这个工具我们就可以用python做一些好用的小工具给自己和朋友们用了。。。