python - 根据程序的运行方式显示不同的信息 : py vs pyz vs exe

标签 python

我有一个小的 Python 程序,可以作为 py 文件使用,但也可以作为独立的 pyz 和 exe(通过 pyinstaller)文件使用,其中包含所有依赖项。
在 pyz 或 exe 中显示许可证信息时,我需要包含有关我所包含的依赖项的额外语句。
如何区分程序是作为 py、pyz 还是 exe 运行以显示不同的许可证?
.
我找到了对另一个问题的回答,这可能对 exe 有帮助:https://stackoverflow.com/a/404750/36061

    if getattr(sys, 'frozen', False):
        print(EXE_LICENCE)
    else:
        print(NORMAL_LICENCE)

最佳答案

把几张支票放在一起。第一个检查它是否作为 pyinstaller exe 运行。第二个(取自对 OP 的评论)如果它是一个 pyz。然后默认。

    if getattr(sys, 'frozen', False):
        print(EXE_LICENCE)
    elif __loader__.__module__ == 'zipimport':
        print(PYZ_LICENCE)
    else:
        print(NORMAL_LICENCE)

关于python - 根据程序的运行方式显示不同的信息 : py vs pyz vs exe,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67344816/

相关文章:

python - 如何使字符串检查不区分大小写?

python - 用 python 自动化 firefox?

python - 使用 python 代码模块时是否有一个我不知道的返回的空函数?

python - 使用 Python 将文件上传到 Azure Blob 存储中的容器

python - 是否有用于创建大小为 'n' 的随机数列表的内置函数?

python - for循环中的lambda仅取最后一个值

python - Flask API 作为实时 kafka 消费者

python - Python 3 C API 中的文件 I/O

Python Pandas Excel 显示

python - 如何将这个多维列表 reshape 为二维数组?