在 Python 中启用自定义调试功能 on/off
Turn custom debugging functions on/off in Python
如果我定义了我自己的调试模块,其中的功能应该只在开发时执行,当我准备发布最终版本时,有没有办法完全禁用这些功能?
我希望有一个聪明的方法让环境在字节码转换期间完全跳过函数调用?我搜索了这个,但可能使用了错误的搜索输入。
我正在为 Blender 开发一个插件,所以我认为我无法控制编译或转换。
是的,Python有一个-O
标志,意思是:
Remove assert statements and any code conditional on the value of __debug__
所以基本上,如果您使用 assert
语句编写调试代码,或者您在 运行 调试函数之前检查 __debug__
的值,您可以使用 -O
开启制作模式:
if __debug__:
run_debug_function()
您还可以通过将 PYTHONOPTIMIZE
环境变量设置为某个非空字符串来启用优化,例如export PYTHONOPTIMIZE=1
在你的 shell.
有关详细信息,请参阅 Python command line documentation
如果我定义了我自己的调试模块,其中的功能应该只在开发时执行,当我准备发布最终版本时,有没有办法完全禁用这些功能?
我希望有一个聪明的方法让环境在字节码转换期间完全跳过函数调用?我搜索了这个,但可能使用了错误的搜索输入。
我正在为 Blender 开发一个插件,所以我认为我无法控制编译或转换。
是的,Python有一个-O
标志,意思是:
Remove assert statements and any code conditional on the value of
__debug__
所以基本上,如果您使用 assert
语句编写调试代码,或者您在 运行 调试函数之前检查 __debug__
的值,您可以使用 -O
开启制作模式:
if __debug__:
run_debug_function()
您还可以通过将 PYTHONOPTIMIZE
环境变量设置为某个非空字符串来启用优化,例如export PYTHONOPTIMIZE=1
在你的 shell.
有关详细信息,请参阅 Python command line documentation