【问题标题】:How do I compile a Python zipapp as optimized?如何编译优化后的 Python zipapp?
【发布时间】:2023-02-23 05:24:24
【问题描述】:

假设src/app.py下有如下代码:

def main():
    assert False

if __name__ == "__main__":
    main()

使用 python -o src/app.py 运行它可以正常工作,因为断言被禁用。

如何打包 zipapp (python -m zipapp src -m "app:main") 以便在双击或运行时自动优化运行?

我已经尝试将扩展名更改为 .pyo,但结果仍然是 AssertionError

【问题讨论】:

    标签: python zipapp


    【解决方案1】:

    如果我是你,我会尝试使用 --python=<interpreter> 选项来编写一个包含你想要的选项的 shebang(可能是 python -O)。尚不清楚是否真的支持在 shebang 中编写选项(有点相关discussion here)。

    您还可以检查pexshiv 是否有您想要的选项。

    【讨论】:

    • 根据您的建议,我查看了 shebang,this 似乎正是我所需要的。我不确定为什么讨论不这么说。然而要测试它是否真的有效(我担心转义引号会是一个问题,即如何区分 "python -o" 作为解释器名称与名称+参数),但我会修改你的答案以伴随该链接:-)
    猜你喜欢
    • 2018-08-25
    • 2011-05-26
    • 1970-01-01
    • 2016-02-14
    • 1970-01-01
    • 1970-01-01
    • 2011-11-07
    • 2013-08-30
    • 1970-01-01
    相关资源
    最近更新 更多