如何检测程序是否正在由cx_freeze编译?

Hak*_*hin 3 python cx-freeze

我有一个使用 configparser 读取 ini 的 python 程序。我希望与 python 文件具有相同的名称,这就是我使用以下代码的原因:

# nativ python
#fileName = sys.argv[0].split('.')[0]

# compiled python
fileName = sys.argv[0].split('\\')[-1]
fileName = fileName.split('.')[0]
Run Code Online (Sandbox Code Playgroud)

正如你所看到的,根据我运行它的模式,我有不同的版本。将其作为 python 脚本 sys.argv 运行会产生与将其用作 exe 不同的结果。我手动切换它,有时我会忘记它,不得不更改它并重新编译整个东西。但我看到了其他事情,例如:

if sys.platform == "win64":
    base = "Win64GUI"
else:
    base = "Win32GUI"
Run Code Online (Sandbox Code Playgroud)

我想知道是否可以使用类似于以下内容的方式检测 cx_freeze 是否正在编译源代码:

if getting_compiled():
    fileName = sys.argv[0].split('.')[0]
else:
    fileName = sys.argv[0].split('\\')[-1]
    fileName = fileName.split('.')[0]
Run Code Online (Sandbox Code Playgroud)

Ant*_*nga 6

是的,您可以检查“sys.frozen”的值,该值由cx_Freeze 设置。

getattr(sys, "冻结", False)

应该为你做。