<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>The Townes &#187; py2exe</title>
	<atom:link href="https://thetownes.coolpage.biz/?feed=rss2&#038;tag=py2exe" rel="self" type="application/rss+xml" />
	<link>https://thetownes.coolpage.biz</link>
	<description>本站已转移至：http://www.thetownes.info</description>
	<lastBuildDate>Thu, 01 Aug 2013 11:49:56 +0000</lastBuildDate>
	<language>zh-CN</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.5.2</generator>
		<item>
		<title>py2exe</title>
		<link>https://thetownes.coolpage.biz/?p=164</link>
		<comments>https://thetownes.coolpage.biz/?p=164#comments</comments>
		<pubDate>Wed, 10 Jul 2013 14:52:59 +0000</pubDate>
		<dc:creator>Will</dc:creator>
				<category><![CDATA[Python]]></category>
		<category><![CDATA[py2exe]]></category>

		<guid isPermaLink="false">http://thetownes.coolpage.biz/?p=164</guid>
		<description><![CDATA[一、简介 py2exe是一个将python脚本转换成windows上的可独立执行 &#8230; <a href="https://thetownes.coolpage.biz/?p=164">继续阅读 <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p><strong>一、简介</strong></p>
<p>py2exe是一个将python脚本转换成windows上的可独立执行的可执行程序(*.exe)的工具，这样，你就可以不用装python而在windows系统上运行这个可执行程序。</p>
<p>py2exe已经被用于创建wxPython,Tkinter,Pmw,PyGTK,pygame,win32com&nbsp;client和server,和其它的独立程序。py2exe是发布在开源许可证下的。</p>
<p><strong>二、安装py2exe</strong></p>
<p>从<a href="http://prdownloads.sourceforge.net/py2exe" target="_blank">http://prdownloads.sourceforge.net/py2exe</a>下载并运行与你所安装的Python对应的py2exe版本的installer，这将安装py2exe和相应的例子；这些例子被安装在libsite-packagespy2exesamples目录下。</p>
<p><strong>三、py2exe的用法</strong></p>
<p>如果你有一个名为helloworld.py的python脚本，你想把它转换为运行在windows上的可执行程序，并运行在没有安装python的windows系统上，那么首先你应写一个用于发布程序的设置脚本例如mysetup.py，在其中的setup函数前插入语句import&nbsp;py2exe&nbsp;。</p>
<p>mysetup.py示例如下:</p>
<p>#&nbsp;mysetup.py</p>
<p>from&nbsp;distutils.core&nbsp;import&nbsp;setup</p>
<p>import&nbsp;py2exe</p>
<p>setup(console=["helloworld.py"])</p>
<p><strong>然后按下面的方法运行mysetup.py:</strong></p>
<p><strong>python&nbsp;mysetup.py&nbsp;py2exe</strong></p>
<p><strong></strong>这很重要，你可以用命令行打开<strong>mysetup.py （cd XXX）</strong>和你要做成exe的目录，然后使用这个命令。</p>
<p>然后在目录（<strong>mysetup.py&nbsp;</strong>必须和你要做成的文件放一块儿。。）建立记事本，输入&nbsp;python&nbsp;mysetup.py&nbsp;py2exe，然后另存为Setup.bat。然后下次再要建立时便只要修改mysetup.py了。</p>
<p>上面的命令执行后将产生一个名为dist的子目录，其中包含了helloworld.exe,python24.dll,library.zip这些文件。</p>
<p>如果你的helloworld.py脚本中用了已编译的C扩展模块，那么这些模块也会被拷贝在个子目录中，同样，所有的dll文件在运行时都是需要的，除了系统的dll文件。</p>
<p>dist子目录中的文件包含了你的程序所必须的东西，你应将这个子目录中的所有内容一起发布。</p>
<p>默认情况下，py2exe在目录dist下创建以下这些必须的文件：</p>
<p>1、一个或多个exe文件。</p>
<p>2、python##.dll。</p>
<p>3、几个.pyd文件，它们是已编译的扩展名，它们是exe文件所需要的；加上其它的.dll文件，这些.dll是.pyd所需要的。</p>
<p>4、一个library.zip文件，它包含了已编译的纯的python模块如.pyc或.pyo</p>
<p>上面的mysetup.py创建了一个控制台的helloword.exe程序，如果你要创建一个图形用户界的程序，那么你只需要将mysetup.py中的console=["helloworld.py"]替换为windows=["myscript.py"]既可。</p>
<p>py2exe一次能够创建多个exe文件，你需要将这些脚本文件的列表传递给console或windows的关键字参数。如果你有几个相关联的脚本，那么这是很有用的。</p>
<p>运行下面个命令，将显示py2exe命令的所有命令行标记。</p>
<p>python&nbsp;mysetup.py&nbsp;py2exe&nbsp;–help</p>
<p><strong>四、指定额外的文件</strong></p>
<p>一些应用程序在运行时需要额外的文件，诸如配置文件、字体、位图。</p>
<p>如果在安装脚本中用data_files可选项指定了那些额外的文件，那么py2exe能将这些文件拷贝到dist子目录中。data_files应包含一个元组(target-dir,&nbsp;files)列表，其中的files是这些额外的文件的列表。</p>
<p>示例如下：</p>
<p>#&nbsp;mysetup.py</p>
<p>from&nbsp;distutils.core&nbsp;import&nbsp;setup</p>
<p>import&nbsp;glob</p>
<p>import&nbsp;py2exe</p>
<p>setup(console=["helloworld.py"],</p>
<p>data_files=[("bitmaps",</p>
<p>["bm/large.gif",&nbsp;"bm/small.gif"]),</p>
<p>(“fonts”,</p>
<p>glob.glob(“fonts\*.fnt”))],</p>
<p>)</p>
<p>说明：data_files选项将创建一个子目录distbitmaps，其中包含两个.gif文件；一个子目录distfonts，其中包含了所有的.fnt文件。</p>
<p><strong>五、Windows&nbsp;NT&nbsp;services</strong></p>
<p>你可以通过传递一个service关键字参数给setup函数来建造Windows&nbsp;NT&nbsp;services</p>
<p>,这个service参数的值必须是一个Python模块名(包含一service类)的列表。</p>
<p>示例如下：</p>
<p>#&nbsp;mysetup.py</p>
<p>from&nbsp;distutils.core&nbsp;import&nbsp;setup</p>
<p>import&nbsp;py2exe</p>
<p>setup(service=["MyService"])</p>
<p>所建造的可执行的service是可以通过在其后跟一定的命令行参数标记来自行安装和卸载的。你可以通过在这个可执行的service(exe)后跟一-help参数来得到更多的帮助。</p>
<p><strong>六、COM&nbsp;servers</strong></p>
<p>你可以通过传递一个com_server&nbsp;关键字参数给setup函数来建造Windows&nbsp;NT&nbsp;services</p>
<p>,这个service参数的值必须是一个Python模块名(包含一个或多个COM&nbsp;server&nbsp;类)的列表。</p>
<p>示例如下：</p>
<p>#&nbsp;mysetup.py</p>
<p>from&nbsp;distutils.core&nbsp;import&nbsp;setup</p>
<p>import&nbsp;py2exe</p>
<p>setup(com_server=["win32com.server.interp"])</p>
<p>默认情况下，DLL和EXE&nbsp;servers被建造，你不需要它们的话你可以简单的删除它们。</p>
]]></content:encoded>
			<wfw:commentRss>https://thetownes.coolpage.biz/?feed=rss2&#038;p=164</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
