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



我有一个小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)

最新更新