打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
用py2exe打包成一个exe文件
[python] view plain copy print?
  1. #mysetup.py  
  2. from distutils.core import setup  
  3. import py2exe  
  4. setup(console=["helloworld.py"])   
然后按下面的方法运行mysetup.py:
[python] view plain copy print?
  1. python mysetup.py py2exe  
上面的命令执行后将产生一个名为dist的子目录,其中包含了helloworld.exe,python24.dll,library.zip这些文件。
如果你的helloworld.py脚本中用了已编译的C扩展模块,那么这些模块也会被拷贝在个子目录中,同样,所有的dll文件在运行时都是需要的,除了系统的dll文件。
dist子目录中的文件包含了你的程序所必须的东西,你应将这个子目录中的所有内容一起发布。

默认情况下,py2exe在目录dist下创建
以下这些必须的文件:
1、一个或多个exe文件。
2、python##.dll。 
3、几个.pyd文件,它们是已编译的扩展名,它们是exe文件所需要的;加上其它的.dll文件,这些.dll是.pyd所需要的。
4、一个library.zip文件,它包含了已编译的纯的python模块如.pyc或.pyo
上面的mysetup.py创建了一个控制台的helloword.exe程序,如果你要创建一个图形用户界的程序,那么你只需要将mysetup.py中的console=["helloworld.py"]替换为windows=["myscript.py"]既可。

py2exe一次能够创建多个exe文件,你需要将这些脚本文件的列表传递给console或windows的关键字参数。如果你有几个相关联的脚本,那么这是很有用的。
运行下面个命令,将显示py2exe命令的所有命令行标记。
四、指定额外的文件一些应用程序在运行时需要额外的文件,诸如配置文件、字体、位图。
如果在安装脚本中用data_files可选项指定了那些额外的文件,那么py2exe能将这些文件拷贝到dist子目录中。data_files应包含一个元组(target-dir, files)列表,其中的files是这些额外的文件的列表。
示例如下:
[python] view plain copy print?
  1. from distutils.core import setup  
  2. import glob  
  3. import py2exe   
  4. setup(console=["helloworld.py"],  
  5.       data_files=[("bitmaps",  
  6.                    ["bm/large.gif", "bm/small.gif"]),  
  7.                   ("fonts", glob.glob("fonts\\*.fnt"))])  
说明:data_files选项将创建一个子目录dist\bitmaps,其中包含两个.gif文件;一个子目录dist\fonts,其中包含了所有的.fnt文件。

五、Windows NT services你可以通过传递一个service关键字参数给setup函数来建造Windows NT services
,这个service参数的值必须是一个Python模块名(包含一service类)的列表。
示例如下:
[python] view plain copy print?
  1. from distutils.core import setup  
  2. import py2exe  
  3. setup(service=["MyService"])   
所建造的可执行的service是可以通过在其后跟一定的命令行参数标记来自行安装和卸载的。你可以通过在这个可执行的service(exe)后跟一-help参数来得到更多的帮助。

六、COM servers

你可以通过传递一个com_server 关键字参数给setup函数来建造Windows NT services,这个service参数的值必须是一个Python模块名(包含一个或多个COM server 类)的列表。示例如下:# mysetup.pyfrom distutils.core import setupimport py2exesetup(com_server=["win32com.server.interp"])默认情况下,DLL和EXE servers被建造,你不需要它们的话你可以简单的删除它们。

 

七、本人补充

补充一下,如果要把python编译的所有文件打包到一个exe中,就需要在setup()这个函数中,要设置2个参数:options中的bundle_files和zipfile。
其中bundle_files有效值为:
3 (默认)不打包。
2 打包,但不打包Python解释器。
1 打包,包括Python解释器。

zipfile的有效值为:
不填(默认) 生成一个library.zip文件
None 把所有东西打包进.exe文件中
实例如下:
[python] view plain copy print?
  1. #! /usr/bin/env python  
  2. # -*- coding: utf-8 -*-  
  3. #安装成windows服务的python脚本  
  4. #内容:  
  5. from distutils.core import setup  
  6. import py2exe  
  7. options = {"py2exe":{"compressed": 1, #压缩  
  8.                      "optimize": 2,  
  9.                      "bundle_files": 1 #所有文件打包成一个exe文件  
  10.                      }}  
  11. setup(  
  12.     service=["PyWindowsService"],  
  13.     options=options,  
  14.     zipfile=None)   
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
py2exe使用方法
使用 py2exe 打包 Python 程序
C#中调用python
手动制作python的exe可执行程序
[技术征文]关于python打包成exe的一点经验之谈
python打包exe最清楚的教程来了
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服