【问题标题】:What are the optimization levels in Cx_Freeze?Cx_Freeze 中有哪些优化级别?
【发布时间】:2020-01-15 16:35:07
【问题描述】:

我正在使用 Cx_Freeze 6.0(Python 3.7.4 64 位,如果这有什么不同的话)冻结我的脚本,并且我正在努力在 build_exe 中找到有关优化级别的任何文档。我看到的大多数脚本要么使用1,要么根本没有任何价值,我已经成功使用了12,但我无法发现exe 中的任何差异。

我当前的选项如下所示:

exe_options = {
    'build_exe': 'bin',
    'includes': ['something'],
    'excludes': ['something_else'],
    'packages': ['pack', 'age'],
    'optimize': 2  # What the hell are the levels?
}

编辑:我检查了 exe 文件的 MD5 哈希和 SHA-256 哈希,级别为 0,1 和 2,exe 是完全相同的文件。运行“build”时是否未使用此选项?

【问题讨论】:

    标签: python optimization cx-freeze


    【解决方案1】:

    这与直接执行 CPython 时的-O command line option 效果相同。在other things中,它阻止assert语句的执行,删除文档字符串并将__debug__设置为False

    【讨论】:

    • 但这并不能解释为什么使用不同级别构建的 exe 文件的结果相同。比如__debug__设置为False,exe哈希不应该不一样吗?
    • 您是否尝试过冻结实际上依赖于__debug__ 的代码?你也可以查询sys.flags.optimize,它应该返回你传递给cx_freeze的值。
    猜你喜欢
    • 2016-12-17
    • 2016-01-01
    • 2017-12-17
    • 2010-12-19
    • 1970-01-01
    • 2013-03-10
    • 2011-10-13
    • 1970-01-01
    相关资源
    最近更新 更多