如何以编程方式检测代码是否以nuitka编译或python解释模式运行

Ron*_*Ron 5 python nuitka

谁能说出如何检测代码是否在Nuitka创建的exe或正常的python解释器中运行?

我认为我理想上希望一个“ is_nuitka ”标志在编译时设置为True,并且在不编译时根本不存在。

然后可以使用如下代码:

if '__is_nuitka__' in locals() or '__is_nuitka__' in globals():
    print('debug info: running in nuitka mode')
Run Code Online (Sandbox Code Playgroud)

有什么建议么?有这样的东西吗?还有其他方法吗?

Tig*_*222 6

从 Nuitka 0.6.2开始,您可以使用以下代码:

is_nuitka = "__compiled__" in globals()
Run Code Online (Sandbox Code Playgroud)


Pav*_* M. -2

第一个想法是检查 sys.argv[0] 像

if '.exe' in sys.argv[0]:
    # compiled
Run Code Online (Sandbox Code Playgroud)