Python生成exe文件

一、简介

py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具,这样,你就可以不用装python而在windows系统上运行这个可执行程序。
py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com client和server,和其它的独立程序。py2exe是发布在开源许可证下的。目前只有python2.x的才有对应版本的。

二、安装py2exe

http://prdownloads.sourceforge.net/py2exe下载并运行与你所安装的Python对应的py2exe版本的installer,这将安装py2exe和相应的例子;这些例子被安装在lib\site-packages\py2exe\samples目录下。

三、py2exe的用法

如果你有一个名为helloworld.py的python脚本,你想把它转换为运行在windows上的可执行程序,并运行在没有安装python的windows系统上,那么首先你应写一个用于发布程序的设置脚本例如mysetup.py,在其中的setup函数前插入语句import py2exe 。
mysetup.py示例如下:


1

2

3

4

5

# mysetup.py

from distutils.core import setup

import py2exe

setup(console=["helloworld.py"])

console换成windows会打包.pyw文件,不会产生类似cmd的窗口
然后按下面的方法运行mysetup.py:

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命令的所有命令行标记。

python mysetup.py py2exe --help

四、指定额外的文件

一些应用程序在运行时需要额外的文件,诸如配置文件、字体、位图。
如果在安装脚本中用data_files可选项指定了那些额外的文件,那么py2exe能将这些文件拷贝到dist子目录中。data_files应包含一个元组(target-dir, files)列表,其中的files是这些额外的文件的列表。
示例如下:

# mysetup.py

from distutils.core import setup

import glob

import py2exe

setup(    console=["helloworld.py"],

             data_files=[ ( "bitmaps", ["bm/large.gif", "bm/small.gif"] ),

                               ( "fonts", glob.glob( "fonts\\*.fnt" ) )

                            ], )

说明:data_files选项将创建一个子目录dist\bitmaps,其中包含两个.gif文件;一个子目录dist\fonts,其中包含了所有的.fnt文件。

五、Windows NT services

你可以通过传递一个service关键字参数给setup函数来建造Windows NT services
,这个service参数的值必须是一个Python模块名(包含一service类)的列表。
示例如下:

# mysetup.py

from distutils.core import setup

import py2exe

setup(service=["MyService"])

所建造的可执行的service是可以通过在其后跟一定的命令行参数标记来自行安装和卸载的。你可以通过在这个可执行的service(exe)后跟一-help参数来得到更多的帮助。

六、COM servers

你可以通过传递一个com_server 关键字参数给setup函数来建造Windows NT services
,这个service参数的值必须是一个Python模块名(包含一个或多个COM server 类)的列表。
示例如下:

# mysetup.py

from distutils.core import setup

import py2exe

setup(com_server=["win32com.server.interp"])

默认情况下,DLL和EXE servers被建造,你不需要它们的话你可以简单的删除它们。

另:一个标准的setup.py的代码如下:

#!/usr/bin/python

#filename:setup.py

#coding=utf-8

from distutils.core import setup

import py2exe

includes = ["encodings", "encodings.*"]

#要包含的其它库文件

options = { "py2exe":

                                 "compressed": 1, #压缩

                                     "optimize": 2,

                                     "ascii": 1,

                                     "includes":includes,

                                     "bundle_files": 1 #所有文件打包成一个exe文件 }

}

setup(

              version = "XXX",

              description = "XXX",

              name = "XXX",

              options = options,

              zipfile=None, #不生成library.zip文件

              console=[ { "script": "hello.py",

                               "icon_resources": [(1, "hello.ico")] } ]#源文件,程序图标

)

原文地址:https://www.cnblogs.com/talor/p/9820930.html

时间: 2024-07-31 12:04:19

Python生成exe文件的相关文章

python生成.exe文件

python生成.exe,可以使用pyinstaller模块 在windows下,打开powershell,cd到当前目录,使用 pyinstaller -F test.py 会在当前文件夹下生成一个dist的文件夹 文件test.exe在该文件夹下,可以直接使用 主要选项: -D,创建一个目录,包含exe文件,但会以来很多文件 -c,使用控制台,无界面 -W,使用窗口,无控制台

py2exe 生成exe文件时提示找不到某模块

如题,打开python,import chardet没问题,但是使用py2exe时总提示chardet找不到... 由于chardet安装是下载的tar.gz文件解压后,python setup.py install 安装的(windows),不得不将解压后的文件夹里的chardet文件夹拷贝到C:\Python27\Lib\site-packages路径下,结果ok了 py2exe 生成exe文件时提示找不到某模块

matlab改变GUI和figure左上角图标的方法,并生成exe文件

1. GUI左上角图标的更改,假设GUI的Tag为figure1,在其OpeningFcn里添加h = handles.figure1; %返回其句柄newIcon = javax.swing.ImageIcon('1.jpg')figFrame = get(h,'JavaFrame'); %取得Figure的JavaFrame.figFrame.setFigureIcon(newIcon); %修改图标%%%生成exe文件的方法在附件里2. 一般图形窗口的左上角图标的更改clearnewIco

c++与matlab联合编程,调用Deploytool 生成exe文件和dll文件(转)

转自:http://www.cnblogs.com/xlw1219/archive/2012/12/25/2832222.html 首先必须知道联合编程需要知道的一些命令解释: mcc 的作用是将 .m文件编译为 c/c++动态链接库文件,使你可以在 c/c++程序中使用 matlab的一些函数功能.mcc 也可以将.m文件编译为exe可执行文件. mex 的作用是将 c/cpp文件编译为 .m  文件可以调用的库文件,在Windows操作系统里通常是以mexw32或mexw64为扩展名,让你可

如何打包/运行jar包,及生成exe文件

关于如何打包/运行jar包,以及生成exe文件.之前各种查询.博客,终于搞明白究竟是咋回事.记得还做过笔记的.今天要打包生成exe用的时候,居然忘了咋怎来着.去查看之前的笔记,死活没找到(好像被删掉了).决定写下来,以便之后随时调用. 一.jar包 什么是jar包?jar包即(Java Archive File),也就是java归档文件.JAR 文件与 ZIP 文件唯一的区别就是在 JAR 文件的内容中,包含了一个 META-INF/MANIFEST.MF 文件,这个文件是在生成 JAR 文件的

VS2010 打包生成exe文件后 运行安装文件出现 TODO:<文件说明>已停止工作并已关闭

VS2010 打包生成exe文件后  运行安装文件出现  TODO:<文件说明>已停止工作并已关闭 TODO: <文件说明>已停止工作 原因: 打包的时候在文件系统中建立了空文件夹,那么该空的文件夹就不会被加载进去,导致程序运行用到该文件夹的时候就会出现了该问题. 解决方法: 如建立了文件Calibration 那么先随便加载一个文件(如:3.csv)文件进去  不让它为空就行了

matlab生成exe文件

matlab生成exe文件 1 首先要将\MATLAB701\toolbox\compiler\deploy\win32 中MCRinstaller.exe 安装到该计算机上(7.0 以前的版本是mglinstaller.exe),若你的matlab是安装版本的,这个工具可能已经安装过了,就不用安装了:否则需要安装.2 在确定安装好MatlabCompiler后,还需要对Compiler 进行适当的配置,方法是在Matlab 命令窗口输入:Mbuild –setup然后根据提示执行相应的操作,使

python打包exe文件-ImportError: No module named &#39;queue&#39;

我之前遇到的一个错误就是 [html] view plain copy File "site-packages\urllib3\packages\six.py", line 92, in __get__ File "site-packages\urllib3\packages\six.py", line 115, in _resolve File "site-packages\urllib3\packages\six.py", line 82, 

VS2010 打包生成exe文件后 执行安装文件出现 TODO:&amp;lt;文件说明&amp;gt;已停止工作并已关闭

一.VS2010 打包生成exe文件后  执行安装文件出现  TODO:<文件说明>已停止工作并已关闭 TODO: <文件说明>已停止工作 原因: 打包的时候在文件系统中建立了空目录,那么该空的目录就不会被载入进去,导致程序执行用到该目录的时候就会出现了该问题. 解决方法: 如建立了文件Calibration 那么先随便载入一个文件(如:3.csv)文件进去  不让它为空即可了 二.打包经常使用设置: 1.设置软件的安装文件夹 能够直接改动的faultLocation  如:E:\