当前位置: 首页 > news >正文

把python文件编译成exe文件

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

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

1. py2exe

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

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

创建一个安装文件setup.py:
from distutils.core import setup
import py2exe
setup(console=['foobar.py'])

执行:python setup.py py2exe

2. pyinstaller

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

创建一个例子文件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 的。

原文:http://hi.baidu.com/thinkinginlamp/blog/item/9f424954862d1551564e0001.html

[精彩] 关于脱离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.

原文:http://www.chinaunix.net/jh/55/687066.html














本文转sinojelly51CTO博客,原文链接:http://blog.51cto.com/sinojelly/237902,如需转载请自行联系原作者

相关文章:

  • ArcGis Mobile根据查询出来的坐标画marker(DrawMapImage)
  • 什么是Heartbeat
  • hdu 4027 Can you answer these queries?
  • Windows数据类型探幽——千回百转你是谁?(1)
  • 数据库连接错误: The provider did not return a ProviderManifestToken string.
  • C#编写的winform程序打包方法
  • 2017.11.14 小组第二次例会
  • 032 文本框中的时间格式
  • hdu 4012 Paint on a Wall
  • Android开发者指南(11) —— Optimizing Apps for Android 3.0
  • C#获取当前路径的7种方法
  • android116 轮播 viewPager实现
  • 参加虚拟化达人训练营的体会
  • 转载: 关于ruby中 %Q, %q, %W, %w, %x, %r, %s 的用法
  • django专题—安装、创建项目、添加应用
  • 分享的文章《人生如棋》
  • 【跃迁之路】【735天】程序员高效学习方法论探索系列(实验阶段492-2019.2.25)...
  • C++类的相互关联
  • ES6 学习笔记(一)let,const和解构赋值
  • Mac转Windows的拯救指南
  • React 快速上手 - 07 前端路由 react-router
  • vue-cli在webpack的配置文件探究
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 前端每日实战:61# 视频演示如何用纯 CSS 创作一只咖啡壶
  • 系统认识JavaScript正则表达式
  • 小程序测试方案初探
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ​Linux·i2c驱动架构​
  • #13 yum、编译安装与sed命令的使用
  • $$$$GB2312-80区位编码表$$$$
  • $(function(){})与(function($){....})(jQuery)的区别
  • (16)UiBot:智能化软件机器人(以头歌抓取课程数据为例)
  • (第一天)包装对象、作用域、创建对象
  • (二)Linux——Linux常用指令
  • (附源码)python旅游推荐系统 毕业设计 250623
  • (附源码)springboot宠物管理系统 毕业设计 121654
  • (简单有案例)前端实现主题切换、动态换肤的两种简单方式
  • (南京观海微电子)——COF介绍
  • (三)终结任务
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (转)ABI是什么
  • (转)scrum常见工具列表
  • ../depcomp: line 571: exec: g++: not found
  • .htaccess 强制https 单独排除某个目录
  • .NET DataGridView数据绑定说明
  • .Net Memory Profiler的使用举例
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .NET应用架构设计:原则、模式与实践 目录预览
  • .Net中的设计模式——Factory Method模式
  • .project文件
  • .sys文件乱码_python vscode输出乱码
  • /usr/bin/perl:bad interpreter:No such file or directory 的解决办法
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [ linux ] linux 命令英文全称及解释
  • []AT 指令 收发短信和GPRS上网 SIM508/548