(转载)Python 应用发布技术
2011年08月09日
分类: 脚本 2009-04-08 17:05 722人阅读 评论(0) 收藏 举报
1. Python 应用发布技术收集如何 将Py应用打包发布的各种技巧:
1.1. 工具
k reply-to python-cn@googlegroups.com,to python-cn@googlegroups.com,date Tue, Apr 1, 2008 at 2:58 PMsubject [CPyUG:45605]
将Python程序转化为可执行程序~整理
工欲善其事,必先利其器.python是解释型的语言,但是在windows下如果要执行程序的话还得加个 python shell的话,未免也太麻烦了.而这里所说的东西就是将python程序转换为exe文件.下面是一些常用的工具,不过似乎py2exe应用的更加广泛一些.
1.1.1. py2exehttp://py2exe.sf.net
只支持windows平台,应该是大家听到最多的一个名字了,用户不少,所以有问题的话在它的mail list里面很容易找到答案。文档中提到了"无法找到某某code"、使用opengl等模块的问题
1.1.2. PyPackagehttp://codereactor.net/projects/pypack/index.html
我觉得py2exe等等工具还是罗嗦得像唐僧,需要在配置文件中写上需要的数据文件。作者完全无视这样一个事实:我需要发布可执行文件的时候,程序已经完工了,所有的数据文件就在主程序所在目录下,所以多数情况下,根本不用到别的地方搜索。现在终于有人站了出来,PyPackage实际上并不是一个程序打包的工具,而只是简化py2exe的操作,甚至可以自动调用InnoSetup 5制作安装文件
不过这个软件并不智能,会打包很多不需要的文件
1.1.3. Installerhttp://www.mcmillan-inc.com/installer_dnld.html
可以产生windows、linux平台的可执行文件,现在作者主页连不上去了,但是搜索一下可以在其它地方下载 自带一个小程序写配置文件,如果程序较复杂,还是需要手工修改这个配置文件。支持从py15以来的所有Python版本
2005 年9月,冰冻牡蛎更新:Giovanni Bajo获得Gordon McMillan's Installer的授权、版权改变为GPL,
并在 http://pyinstaller.hpcf.upr.edu/ 继续开发PYinstaller。
2006年9月更新:这里可以看到 Gordon McMillan's的原始网站的镜像
1.1.4. Python自带的freeze.py(不过windows版本不带这个,你可以自己下载Python的源程序再找)。 这个是我最不推荐的一种方法(为什么?自己看),不过如果你的Python程序要发布到其它工具不支持的平台上,可以考虑这个方法
1.1.5. Pyco新出来的
http://www.pythonapocrypha.com/projects/pyco/
还没用过
1.1.6. Squeezehttp://starship.python.net/crew/fredrik/ipa/squeeze.htm
还没用过,只支持Python 1.4
1.1.7. cx_Freezehttp://starship.python.net/crew/atuining/cx_Freeze/
winodws、linux平台。简单的程序甚至都不需要写配置文件
1.1.8. Stand alone Python for Windowshttp://arctrix.com/nas/python/standalone.html
如果你不介意源程序太过"暴露"的话,用这个吧
会不会觉得Updated: Sun, 09 Apr 2000 18:39:54 -0600 扎眼?
如果你看一看它的VC源代码,就不会这么想了 其实这是普遍适用于win系统的方法,无论是98、2000或者xp。也许也可以用到linux上
我不懂linux,如果真的可以这么做,还请告诉我。
1.1.9. py2apphttp://undefined.org/python/
支持linux平台的工具可能也支持mac os,或者直接使用这个py2app。具体就不知道了,只吃过苹果,还没玩过苹果呢
1.1.10. Movable Pythonhttp://www.voidspace.org.uk/python/movpy/
这个其实是使用py2exe制作的、可以放在U盘上的绿色Python。有使用py2app制作苹果版movpy和用cx_Freeze制作Linux版movpy的计划。懒到都不愿意学习py2exe、py2app或者cx_Freeze的人可以看看。
1.1.11. Shed Skin- A Python-to-C++ Compiler:
试验项目,windows上,连他的例子我都没有编译成功。
1.1.12. Jungle: 使用GNU工具(as、ld和winres)把Python程序编译到windows的exe可执行文件。
该可执行文件只使用基于python24的的pythonic.dll。猜测它支持的模块仅限于内部模块以及jungle.jgl列出的模块。只有可执行文件下载,而这个可执行文件也是用Jungle自己编译的。 目前版本号都到1.10了,经常看0.xx的版本号,这个数字好大啊,娃哈哈。
1.1.13. 另类的方法,对Python语言特性都还不是100%支持,众多的CPython模块也不可以使用,还有,我也没有试过:
for .NET的Python编译器(如Visual Python、IronPython),不过我可不喜欢为了一个芝麻大的软件安装.NET framework
用jython,然后用jbuilder、jsmooth、NativeJ之类的包裹一下,或者用gcj编译成本地代码
1.1.13.1. Psyco: 给Python程序加速的东西,看不出对发布Python程序的直接好处,并且作者以后将致力于PyPy。
1.1.13.2. PyPy: 项目目标是纯Python实现的Python、速度比CPython快,将来可以帮助实现编译Python。
1.1.13.3. pyc: Python compiler in Python,一个用纯Python写的Python的bytecode编译器,可以优化输出的pyc文件。
和PyPy一样,现在还看不出对发布Python程序的直接好处。只有py24的bytecode。
pyc是pyvm这个新的python虚拟机的一部分。
1.1.13.4. Pyrex使用Pyrex
直接将Python 应用编译成 C 代码,然后,自然就生成.exe 了
1.2. 体验手动制作python的exe可执行程序 ~ by LeoJay
1.2.1. PyInstaller
nEO (a.k.a. gentoo.cn) reply-to python-cn@googlegroups.com,to python-cn@googlegroups.com,date Wed, Apr 2, 2008 at 12:34 AM
http://pyinstaller.python-hosting.com/
吸取了py2exe的优点, 支持打包成一个可执行文件, 支持upx壳, 支持多平台 体积比py2exe生成的小 我现在用这个替代py2exe了
1.2.2. NSIS
Gerald Lee reply-to python-cn@googlegroups.com,to python-cn@googlegroups.com,date Tue, Apr 1, 2008 at 8:19 PMsubject [CPyUG:45664] Re: 将Python程序转化为可执行程序[整理]
这两天一直在写NSIS脚本做安装程序,因为是N个模块定制安装的,所以我用python写,然后输出NSI脚本文件,再逐个编译,以产生需要的安装文件。写脚本的过程突然发现一个问题,是不是可以使用nsis脚本来引导python程序呢?以前一直是用bat文件引导的。顺手写了一个,测试感觉可行,生成的一个exe文件33K,NSIS代码如下:
Name "Python Launcher"Icon "images/shipping.ico"OutFile "GridOK.exe"SilentInstall silentAutoCloseWindow trueShowInstDetails nevershowSection "" Exec "pythonw GridOK.py";这里可能需要变动一下SectionEnd
参考资料:
http://www.blogjava.net/xilaile/archive/2007/05/13/117039.html
1.2.3. 实例 Py2exe在最后,给一个人学习py2exe的文章,帮助学习: 最近学了一点PYTHON,想把PYTHON写的程序转换成EXE文件,在网上查到了资料后发现了这个东东 写下来做一下记录。 英文教程:
http://www.py2exe.org/index.cgi/Tutorial
Python 2.5 + Py2exe 工作目录:c:/python25
首先随便写一个程序hello.pyprint "Hello World!"
测试一下是否能运行python hello.py结果:Hello World
到www.py2exe.org下载 PY2exe ,或者在SF上下载
接下来直接安装PY2EXE包。。它是一个安装文件。。直接装就行了。下在编写一个设置的PY文件 setup.py
from distutils.core import setupimport py2exesetup(console=['hello.py'])
运行:python setup.py py2exe 出现以下信息后,在DIST目录里,就会有一个hello.exe 即成功。
running py2exe*** searching for required modules ****** parsing results ***creating python loader for extension 'zlib'creating python loader for extension 'unicodedata'creating python loader for extension 'bz2'*** finding dlls needed ****** create binaries ****** byte compile python files ***byte-compiling C:/Tutorial/build/bdist.win32/winexe/temp/bz2.py to bz2.pycbyte-compiling C:/Tutorial/build/bdist.win32/winexe/temp/unicodedata.py to unicodedata.pycbyte-compiling C:/Tutorial/build/bdist.win32/winexe/temp/zlib.py to zlib.pycskipping byte-compilation of c:/Python24/lib/StringIO.py to StringIO.pyc[skipping many lines for brevity]skipping byte-compilation of c:/Python24/lib/warnings.py to warnings.pyc*** copy extensions ****** copy dlls ***copying c:/Python24/lib/site-packages/py2exe/run.exe -> C:/Tutorial/dist/hello.exe*** binary dependencies ***Your executable(s) also depend on these dlls which are not included,you may or may not need to distribute them.Make sure you have the license if you distribute any of them, andmake sure you don't distribute files belonging to the operating system. ADVAPI32.dll - C:/WINDOWS/system32/ADVAPI32.dll USER32.dll - C:/WINDOWS/system32/USER32.dll SHELL32.dll - C:/WINDOWS/system32/SHELL32.dll KERNEL32.dll - C:/WINDOWS/system32/KERNEL32.dll
发表评论
-
动静库
2012-01-20 12:18 724动静库 2010年12月16日 ... -
Gcc简易教程
2012-01-20 12:17 681Gcc简易教程 2010年06月13日 版权属于GodT ... -
qqCPUID 的一个汇编实例
2012-01-20 12:17 847qqCPUID 的一个汇编实例 ... -
编译程序与操作系统的关系
2012-01-20 12:17 861编译程序与操作系统的 ... -
strcpy没有声明 c++头文件详解
2012-01-20 12:17 2344strcpy没有声明 c++头文件详解 2010年10月23 ... -
python 常用类库!(转)
2012-01-19 17:00 668python 常用类库!(转) 2011年01月21日 ... -
前言:什么是Python?
2012-01-19 16:59 706前言:什么是Python? 2010年11月14日 py ... -
对比java和python
2012-01-19 16:59 1196对比java和python 2011年04 ... -
Python 应用领域
2012-01-19 16:59 780Python 应用领域 2010年08 ... -
最真的爱(转)
2012-01-17 06:44 589最真的爱(转) 2011年11月25日 -
如何做好日用品的直销?
2012-01-17 06:44 656如何做好日用品的直销? 2011年11月22日 濡 -
安莉芳内衣亮相2011深圳国际内衣文化周
2012-01-17 06:44 648安莉芳内衣亮相2011深圳国际内衣文化周 2011年11月2 ... -
歌瑞尔内衣:一不小心“玩”大了
2012-01-17 06:44 690歌瑞尔内衣:一不小心“玩”大了 2011年11月26日 ... -
2011-12-12
2012-01-17 06:44 5462011-12-12 2011年12月12日 乱码体: -
给大学生学习ARM和FPGA的建议(转)
2012-01-16 05:33 1033给大学生学习ARM和FPGA的 ... -
HOOK API 函数跳转详解
2012-01-16 05:33 1032HOOK API 函数跳转详解 20 ... -
java的面试socket
2012-01-16 05:33 904java的面试socket 2010年05 ... -
Winsock 常用API函数
2012-01-16 05:26 651Winsock 常用API函数 2011年04月29日 ...
相关推荐
Python_应用发布技术 Python_应用发布技术
本书《文本数据挖掘与Python应用》主要介绍了文本数据挖掘的基本概念、技术方法,以及Python在文本数据挖掘中的应用。 文本数据挖掘的基本概念包括文本预处理技术、文本特征提取方法、文本分类与聚类算法等。文本...
Python作为一种高级编程语言,在软件应用技术领域展现出了独特的优势,尤其是在数据爬取、软件分析等领域发展迅速。Python语言之所以能够得到广泛的应用,与其语言特点和应用优势密切相关。 首先,Python语言的操作...
本篇文章将深入探讨Python在渗透测试、Web分析、网络流量分析、取证分析以及攻击无线设备等场景中的技术应用。 1. **渗透测试**: Python在安全领域中的一个重要角色是进行渗透测试,也称为道德黑客攻击。它允许安全...
本文主要探讨了基于Python语言的爬虫技术,包括它的特性、应用以及与其他编程语言和框架的比较。 首先,文章提到了爬虫技术的重要性。以Google公司的发展为例,初创时期的Google仅有一个老服务器和一个Python网络...
本资料"基于Python编程语言的技术应用"将深入探讨Python在这些领域的具体应用。 首先,Python在数据科学中的应用是其主要亮点之一。Python提供了众多数据处理库,如Pandas,它提供了高效的数据结构DataFrame,用于...
圣诞树代码编程python源码附赠30个Python应用源码圣诞树代码编程python源码附赠30个Python应用源码圣诞树代码编程python源码附赠30个Python应用源码圣诞树代码编程python源码附赠30个Python应用源码圣诞树代码编程...
Python网络爬虫技术是当前IT领域中非常热门的一个分支,尤其在大数据分析和人工智能应用中起着关键作用。本资源“Python网络爬虫技术_习题答案.rar”看似是一个教学资料,包含了一些图像文件和章节内容,我们可以从...
在“Python界面程序开发应用技术”这一主题中,我们将深入探讨如何利用Python来创建具有图形用户界面(GUI)的应用程序,这使得Python不仅适用于后端开发,也能用于构建直观、易于操作的前端应用。 Python中有多种...
Python语言作为当今计算机开发领域中一种重要的编程语言,其在软件开发中的应用技术备受关注。Python具备简洁性、强大的类库支持等优势,在软件开发的多个方面展现了突出的应用价值,尤其在数据挖掘、网络爬虫开发...
PythonOCC是一个强大的工具,它是Open CASCADE Technology (OCC) 的Python绑定,允许开发者使用Python语言进行三维几何建模和CAD应用开发。OCC是一个开源的C++ CAD/CAM/CAE软件开发平台,提供了丰富的几何建模算法和...
在这篇题为《信息技术在Python教学应用中的思考——以Python环境搭建为例》的文章中,作者范海燕对信息技术如何在Python教学中应用进行了详细探讨,尤其强调了环境搭建的教学环节。以下是对文章中核心知识点的详尽...
基于Python的图像处理技术在鱼类尺寸测量中的应用 本文介绍了一种基于Python的图像处理技术在鱼类尺寸测量中的应用。该技术通过使用OpenCV库函数对原始图像进行预处理,去除噪声干扰、增强鱼体特征等,接着使用...
Python编程语言是一种广泛应用于技术领域的高级编程语言。它的设计初衷是强调代码的可读性和简洁性,使程序员能够用更少的代码行来表达概念。Python作为一门解释性语言,它具备跨平台性,即可以在不同的操作系统上...
Python 在水文中的应用 Python 是一种广泛应用于水文领域的编程语言。水文领域中,Python 的应用包括数据分析、模拟、可视化和自动化等方面。 Python 基础知识 Python 是一种高级的、解释性的编程语言,具有简单...
### Python学习源码和开发应用技术 #### Python简介与特性 Python是一种高级编程语言,以其简洁易读的语法和强大的功能而闻名。Python支持多种编程范式,包括面向对象、命令式、函数式以及过程式编程。由于其设计...
基于 Python 的 Web 技术具有广泛的应用前景和潜力。Python 语言的优点,如简洁易学、开发效率高、可读性强等,能够满足各种 Web 开发需求。因此,我们建议采用 Python 作为 Web 开发的首选语言。