关于Python的应用发布技术 - 不得闲 - 博客园

收集如何 将Py应用打包发布的各种技巧:   

1.1. 工具

{{{k <yanbo.yuan@gmail.com>  reply-to python-cn@googlegroups.com,  to python-cn@googlegroups.com,  date Tue, Apr 1, 2008 at 2:58 PM  subject [CPyUG:45605]}}}[http://groups.google.com/group/python-cn/t/24fbb899f27df30e 将Python程序转化为可执行程序~整理]    

工欲善其事,必先利其器.python是解释型的语言,但是在windows下如果要执行程序的话还得加个python shell的话,未免也太麻烦了.而这里所说的东西就是将python程序转换为exe文件.下面是一些常用的工具,不过似乎py2exe应用的更加广泛一些.   

1.1.1. py2exe

1.1.2. PyPackage

不过这个软件并不智能,会打包很多不需要的文件

1.1.3. Installer

1.1.4. Python自带的freeze.py

(不过windows版本不带这个,你可以自己下载Python的源程序再找)。 这个是我最不推荐的一种方法(为什么?自己看),不过如果你的Python程序要发布到其它工具不支持的平台上,可以考虑这个方法

1.1.5. Pyco

新出来的 http://www.pythonapocrypha.com/projects/pyco/  还没用过

1.1.6. Squeeze

1.1.7. cx_Freeze

1.1.8. Stand alone Python for Windows


其实这是普遍适用于win系统的方法,无论是98、2000或者xp。也许也可以用到linux上


我不懂linux,如果真的可以这么做,还请告诉我。

1.1.9. py2app

1.1.10. Movable Python

1.1.11. Shed Skin

- A Python-to-C++ Compiler:

1.1.12. Jungle

: 使用GNU工具(as、ld和winres)把Python程序编译到windows的exe可执行文件。

1.1.13. 另类的方法

,对Python语言特性都还不是100%支持,众多的CPython模块也不可以使用,还有,我也没有试过:

for .NET的Python编译器

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文件。

1.1.13.4. Pyrex

使用Pyrex

1.2. 体验

1.2.1. PyInstaller

{{{nEO (a.k.a. gentoo.cn) <gentoo.cn@gmail.com> 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 <leejd80@gmail.com> reply-to python-cn@googlegroups.com, to python-cn@googlegroups.com, date Tue, Apr 1,

2008 at 8:19 PM subject [CPyUG:45664] Re: 将Python程序转化为可执行程序[整理] }}}

Name "Python Launcher"Icon "images\shipping.ico"OutFile "GridOK.exe"SilentInstall silentAutoCloseWindow trueShowInstDetails nevershowSection ""  
Exec "pythonw GridOK.py";这里可能需要变动一下SectionEnd

参考资料:

1.2.3. 实例 Py2exe

在最后,给一个人学习py2exe的文章,帮助学习: 最近学了一点PYTHON,想把PYTHON写的程序转换成EXE文件,在网上查到了资料后发现了这个东东 写下来做一下记录。 英文教程:

Python 2.5 + Py2exe 工作目录:c:\python25

首先随便写一个程序
测试一下是否能运行
  • 到www.py2exe.org下载 PY2exe ,或者在SF上下载

  • 接下来直接安装PY2EXE包

    运行: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.pyc
    byte-compiling C:\Tutorial\build\bdist.win32\winexe\temp\unicodedata.py to unicodedata.pyc
    byte-compiling C:\Tutorial\build\bdist.win32\winexe\temp\zlib.py to zlib.pyc
    skipping 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
    ::...
    免责声明:
    当前网页内容, 由 大妈 ZoomQuiet 使用工具: ScrapBook :: Firefox Extension 人工从互联网中收集并分享;
    内容版权归原作者所有;
    本人对内容的有效性/合法性不承担任何强制性责任.
    若有不妥, 欢迎评注提醒:

    或是邮件反馈可也:
    askdama[AT]googlegroups.com


    订阅 substack 体验古早写作:


    点击注册~> 获得 100$ 体验券: DigitalOcean Referral Badge

    关注公众号, 持续获得相关各种嗯哼:
    zoomquiet


    自怼圈/年度番新

    DU22.4
    关于 ~ DebugUself with DAMA ;-)
    粤ICP备18025058号-1
    公安备案号: 44049002000656 ...::