Python-py2exe-生成单个可执行文件

发布于 2021-02-02 23:21:09

我以为我听说py2exe可以做到这一点,但我从来没有想过。有人成功做到了吗?我可以看到您的setup.py文件以及使用的哪些命令行选项吗?

基本上,我在考虑给它一个可执行文件,该文件执行诸如将自身解压缩到/ temp并运行的操作。

关注者
0
被浏览
150
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    PyInstaller将创建一个没有依赖关系的.exe文件;使用该--onefile选项。它通过将所有需要的共享库打包到可执行文件中,然后在运行之前解压缩它们来完成此操作,正如你所描述的那样(编辑:py2exe也具有此功能,请参见minty的答案)

    我使用的是svnPyInstaller版本,因为最新版本(1.3)有点过时了。对于依赖于PyQt,PyQwtnumpyscipy等应用程序的应用程序来说,它的运行情况非常好。



  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    使用py2exe进行此操作的方法是在setup.py文件中使用bundle_files选项。对于单个文件,你将需要设置bundle_files为1,设置compressedTrue,并将zipfile选项设置为None。这样,它会创建一个压缩文件以便于分发。

    这是直接从py2exe网站引用的bundle_file选项的更完整说明*

    使用“ bundle_files”“ zipfile”

    创建单文件可执行文件的一种更简单(更好)的方法是将bundle_files设置为1或2,并将zipfile设置为None。这种方法不需要将文件提取到一个临时位置,从而可以更快地启动程序。

    bundle_files的有效值为:

    3(默认)不捆绑
    2捆绑除Python解释器之外的所有内容
    1捆绑所有内容,包括Python解释器
    如果zipfile设置为None,则文件将捆绑在可执行文件中,而不是在library.zip中。

    这是一个示例setup.py:

    from distutils.core import setup
    import py2exe, sys, os
    
    sys.argv.append('py2exe')
    
    setup(
        options = {'py2exe': {'bundle_files': 1, 'compressed': True}},
        windows = [{'script': "single.py"}],
        zipfile = None,
    )
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看