代码之家  ›  专栏  ›  技术社区  ›  Richard Knop

我能在没有安装python的情况下“编译”python脚本在PC上工作吗?

  •  26
  • Richard Knop  · 技术社区  · 14 年前

    myscript.py
    

    我是这样执行的:

    python D:\myscript.py
    

    但是,我必须安装Python并将其包含在 PATH

    有没有可能将Python可执行文件与Python脚本“捆绑”在一起,这样其他人就可以在没有Python的pc上运行它?

    如果它只能在Windows下工作就可以了。

    在尝试了 compile.py 我得到这个错误:

    Traceback (most recent call last):
      File "D:\stuff\compile.py", line 4, in <module>
        import py2exe
    ImportError: No module named py2exe
    
    6 回复  |  直到 8 年前
        1
  •  24
  •   David Ferenczy Rogožan Hugo L.M    8 年前

    以下是一种方法(对于Windows,使用 py2exe

    首先,安装 py2exe 在你的窗户上。

    compile.py ,如下所示:

    import sys
    from distutils.core import setup
    import py2exe
    
    entry_point = sys.argv[1]
    sys.argv.pop()
    sys.argv.append('py2exe')
    sys.argv.append('-q')
    
    opts = {
        'py2exe': {
            'compressed': 1,
            'optimize': 2,
            'bundle_files': 1
        }
    }
    
    setup(console=[entry_point], options=opts, zipfile=None)
    

    要将Python脚本编译为Windows可执行文件,请使用程序作为参数运行此脚本:

    $ python compile.py myscript.py
    

        2
  •  13
  •   Binary Phile    14 年前

    PyInstaller 对我来说工作得很好,因为它使用了upx,所以生成了相当小的包。它的依赖性检测在当时也优于py2exe。它似乎没有太多最近的发展,可能不适用于3.x,然而。

    存储库中的源代码是比1.4包更好的起点。

    从功能列表中:

    • 将Python程序打包成标准可执行文件,在未安装Python的计算机上运行。
    • 多平台:适用于Windows(32位和64位)、Linux(32位和64位)和Mac OS X(目前仅32位,请参阅MacOsCompatibility)。
    • 软包装模式:
    • 单目录:生成一个包含可执行文件和程序使用的所有外部二进制模块(.dll、.pyd、.so)的目录。
    • 自定义:通过Python中的一个简单脚本文件,您可以自动完成PyInstaller的任何打包模式。
    • 完整的单个文件EGG支持:必需的。EGG文件会自动检查依赖项和绑定,并且在运行时也支持所有EGG特定的功能(入口点等)。
    • 部分目录EGG支持:必需。EGG目录会自动检查依赖项和绑定,但EGG特定功能在运行时不起作用。
    • 通过众所周知的UPX压缩机支持自动二元包装。
    • 可选控制台模式(请参阅标准输出和运行时的标准错误)。
    • 支持代码签名可执行文件。
    • 对CRT的全自动支持:无需手动分发MSVCR*.DLL、redist安装程序、清单或其他任何东西;真正的一个文件应用程序,可以在任何地方工作!
    • 可选择的可执行图标。
    • 支持建立COM服务器。
    • Mac特定功能:
        3
  •  10
  •   unode    14 年前

    你想要像这样的东西 py2exe .

        4
  •  9
  •   Michael    14 年前

    有多种解决方案,如 py2exe cx-freeze 或(仅适用于Mac OS X) py2app .

        5
  •  5
  •   ʇsәɹoɈ    14 年前
        6
  •  -3
  •   user8583529    7 年前

    转到Notepad++菜单,插件-->Python脚本-->显示控制台。在新打开的控制台窗口中,在底部键入。。。。。 execfile('C:/path/to/your/python/file/code.py')使用正斜杠(/)而不是反斜杠。