博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
把python文件编译成exe文件
阅读量:6535 次
发布时间:2019-06-24

本文共 1585 字,大约阅读时间需要 5 分钟。

把python文件编译成exe文件
2008年06月24日 星期二 下午 08:37
作者:老王


把python代码编译成exe文件是一件很酷的事情,有很多软件都能实现这个功能。


1. 


先下载文件( ),安装比较简单,一路下一步就行了。


创建一个例子文件foobar.py:

print "foobar"


创建一个安装文件setup.py:

from distutils.core import setup

import py2exe

setup(console=['foobar.py'])


执行:python setup.py py2exe


2. 


先下载文件( ),只要解压缩到合适的位置即可。


创建一个例子文件foobar.py:

print "foobar"


以下操作在解压缩后的目录里进行。


配置pyinstaller:python Configure.py


生成spec文件:python Makespec.py -F -c foobar.py


执行:python Build.py foobar/foobar.spec

ps: 
py2exe 也可以打成只有一个 exe 包,不带 library.zip 的。
原文:

[精彩] 关于脱离python环境运行的问题,再次重申。


http://wiki.woodpecker.org.cn/moin/PyProgFaq里面已经讲很清楚了。 
特转贴过来,请大家根据情况来选择适合的方式。 

如果你只是希望用户运行一个单独的程序而不需要预先下载一个python的发行版,则并不需要将Python代码编译成C代码。有很多工具可以找出程序依赖的模块并将这些模块 与程序绑定在一起以产生一个单独的执行文件。  

其中一种工具就是freeze tool, 它作为Tools/freeze被包含在python的代码树中。它将python字节码转换成C数组,和一个可将你所有模块嵌入到新程序中的编译器,这个编译器跟python模块链接在一起。  

它根据import语句递归地扫描源代码,并查找在标准python路径中的模块和源代码目录中的模块(内建模块)。用python写的模块的字节码随后被转换成C代码(可以通过使用marshal模块转换成代码对象的数组构 造器),并产生一个可自定义的配置文件,只包含程序使用了的模块。 最后将生成的C代码编译并链接至余下的的python解释器,产生一个与你的script执行效果完全一样的单独文件。  

显然,freeze需要一个C编译器。但也有一些工具并不需要。首先便是Gordon McMillan's installer,它在  

 http://www.mcmillan-inc.com/install1.html  

它工作在Windows, Linux和至少是部分Unix变种上。  
(注:在*nix下推荐此方式。通过make后得到一个独立的文件。) 

另一个便是Thomas Heller的 py2exe (只适用于Windows平台),它在  

 http://starship.python.net/crew/theller/py2exe  

(注:在win下推荐此方式,使用简单,功能强大。缺点是会生成一大堆文件。和必须要python.dll) 

第三个是Christian Tismer的  SQFREEZE,它将字节码附在一个特殊的python解释器后面,解释器负责找到这段代码。Python 2.4可能会引入类似的机制。  

其它工具包括Fredrik Lundh的  Squeeze 和 Anthony Tuininga的  cx_Freeze.
原文:
本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/sinojelly/237902,如需转载请自行联系原作者
你可能感兴趣的文章
JAVAWEB 一一 Hibernate(框架)
查看>>
与、或、异或、取反、左移和右移
查看>>
wordpress模板文件及函数调用
查看>>
jQuery根据元素值删除数组元素的方法
查看>>
Linux基础学习(14)--日志管理
查看>>
vue常用的指令
查看>>
.NET 反射的使用
查看>>
加密算法与安全认证
查看>>
6月21日云栖精选夜读:国内首位!Node.js社区将阿里云工程师张秋怡吸纳为CTC成员...
查看>>
在项目中导入import javax.servlet 出错解决办法
查看>>
js数据类型判断和数组判断
查看>>
关于安排
查看>>
矩阵快速幂
查看>>
tarjan进阶
查看>>
第一季度绩效填写
查看>>
【LeetCode每天一题】Construct Binary Tree from Preorder and Inorder Traversal(使用前序和中序遍历构建二叉树)...
查看>>
Mysql性能基本测试
查看>>
洛谷 P1126 机器人搬重物
查看>>
java.lang.ClassFormatError
查看>>
NYOJ 简单数据结构
查看>>