如何检测程序是否被cx_freeze编译?
How to detect if program is being compiled by cx_freeze?
我有一个 python 程序可以使用 configparser 读取 ini。我想与 python 文件同名,这就是我使用以下代码的原因:
# nativ python
#fileName = sys.argv[0].split('.')[0]
# compiled python
fileName = sys.argv[0].split('\')[-1]
fileName = fileName.split('.')[0]
如您所见,我有不同的版本,具体取决于我 运行 的模式。 运行 作为 python 脚本 sys.argv 给出的结果与将其用作 exe 时的结果不同。我手动切换它,有时我会忘记它,必须更改它并重新编译整个东西。但我看到了其他类似的东西:
if sys.platform == "win64":
base = "Win64GUI"
else:
base = "Win32GUI"
我想知道我是否可以检测源代码是否由 cx_freeze 使用类似于此的东西编译:
if getting_compiled():
fileName = sys.argv[0].split('.')[0]
else:
fileName = sys.argv[0].split('\')[-1]
fileName = fileName.split('.')[0]
是的,你可以查看"sys.frozen"的值,它是由cx_Freeze设置的。
getattr(系统, "frozen", 假)
应该为你做。
我有一个 python 程序可以使用 configparser 读取 ini。我想与 python 文件同名,这就是我使用以下代码的原因:
# nativ python
#fileName = sys.argv[0].split('.')[0]
# compiled python
fileName = sys.argv[0].split('\')[-1]
fileName = fileName.split('.')[0]
如您所见,我有不同的版本,具体取决于我 运行 的模式。 运行 作为 python 脚本 sys.argv 给出的结果与将其用作 exe 时的结果不同。我手动切换它,有时我会忘记它,必须更改它并重新编译整个东西。但我看到了其他类似的东西:
if sys.platform == "win64":
base = "Win64GUI"
else:
base = "Win32GUI"
我想知道我是否可以检测源代码是否由 cx_freeze 使用类似于此的东西编译:
if getting_compiled():
fileName = sys.argv[0].split('.')[0]
else:
fileName = sys.argv[0].split('\')[-1]
fileName = fileName.split('.')[0]
是的,你可以查看"sys.frozen"的值,它是由cx_Freeze设置的。
getattr(系统, "frozen", 假)
应该为你做。