在Unity3D中使用Process类调用python脚本——调试技巧

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 技巧一、使用命令行来进行调试
  • 技巧二、利用异常
  • 总结


前言

最近肝毕设,需要在Unity3D中调用已经写好的python脚本。在此记录一些调试技巧,以便记录。如有错误,希望广大读者能告诉我。
最令人头疼的问题:再用Process类调用python时,如果出现错误,Process并不会自动返回给你,就想一个黑匣子,你无法得知究竟出了什么错误。经过漫长的思考,我想出了两个技巧,供大家参考。


技巧一、使用命令行来进行调试

在网上阅读Process是通过命令行来调用外部程序的,既然Process不能返回出错信息,那我们为什么不用命令行进行调试呢?答案是肯定的。然而,我使用命令行只解决了部分问题,其他的问题都是使用技巧二来解决的。

技巧二、利用异常

虽然Process不会自动返回出错信息,但是它可以读取python脚本的输出信息。如果我们利用异常来捕获出错信息,将其输出,不就可以得到出错信息了吗?
例如:

try:
    import os
    os.environ["KMP_DUPLICATE_LIB_OK"] = "TRUE"
    import argparse
    import json
    import keyboard
    from easydict import EasyDict as edict
except Exception as e:
    print(e)

这样我们就可以获取因导入第三方库出错的信息。

总结

以上两个技巧使我成功在Unity3D中调用了编写好的Python脚本,在这个过程中,出现的错误大多是第三方库与python的版本不匹配,有些坑。
希望这篇记录能对广大读者有所帮助。

你可能感兴趣的:(python,c#,unity)