在Python中打开/关闭自定义调试功能

问题描述 投票:0回答:1

如果我定义自己的调试模块时只有在开发时才能执行这些功能,那么当我准备发布最终版本时,是否有办法完全禁用那些功能?

我希望有一种巧妙的方法来使环境在字节码转换过程中完全跳过函数调用?我搜索了此内容,但可能使用了错误的搜索输入。

我正在为Blender开发一个附件,所以我认为我对编译或转换没有任何控制权。

python debugging conditional-compilation
1个回答
1
投票

是,Python具有-O标志,表示:

删除断言语句和任何以__debug__值为条件的代码

因此,基本上,如果您使用assert语句编写调试代码,或者在运行调试功能之前检查__debug__的值,则可以使用-O打开生产模式:

if __debug__:
    run_debug_function()

您还可以通过将PYTHONOPTIMIZE环境变量设置为某些非空字符串来启用优化,例如export PYTHONOPTIMIZE=1在您的外壳中。

有关更多信息,请参考Python command line documentation

© www.soinside.com 2019 - 2024. All rights reserved.