如何在Unity中执行Python脚本后让其终端自行关闭

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Unity中执行Python脚本后让其终端自行关闭相关的知识,希望对你有一定的参考价值。

写了数段Python脚本,我将他们集成到Unity里,用一个编辑器脚本逐个执行他们。

//执行一个Python脚本
Process p = new Process();
p.StartInfo.FileName = "/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal";
p.StartInfo.Arguments = SDK_PATH + "/Tools/summon.py"; //确定程式命令行
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;
p.StartInfo.CreateNoWindow = false;
p.Start ();

//等待结束
p.WaitForExit ();

//执行下一个..
//....

我在Mac下测试,发现运行没问题,但是每执行一个Python时,终端既不会自己弹到最前面,执行完毕后也不会自动关闭,如果不去手动关闭终端Unity会一直处于等待状态不会执行下一个脚本,请问有什么改善方法吗?

参考技术A exit()
用这个方法会终止程序的。追问

即使加上这句,Mac下的终端也没有自动关闭

参考技术B os.system(exit)
import os

使 Python 脚本可执行并具有参数

【中文标题】使 Python 脚本可执行并具有参数【英文标题】:Make Python Script Executable and Have Parameter 【发布时间】:2016-08-17 23:13:51 【问题描述】:

我为我正在制作的一种语言制作了一个 Python 解析器,我希望该脚本在终端中可执行,我添加了一个 shebang,并尝试在终端中尝试 chmod +x,但我得到了一个输入时出错:

   bash: ./source.py: No file or directory

即使文件存在。 另外,有人知道如何在命令中添加参数/参数吗?

【问题讨论】:

您是否真的复制/粘贴了该行 - 应该是No such file or directory 你说得对,它确实有大写N。对不起,我在手机上,我很难复制。 :P 明显检查文件名是否正确。如果#! 行中的解释器路径不正确,某些旧版本的 bash 会给出此消息,因此请同时检查(错误消息在更高版本中已更改)。 GitHub repo:你可以在那里查看 repo:github.com/bjskistad/jel 不过我需要更新它... (Off-topic) in your readme.md: return in JavaScript 不是一个函数而是一个关键字;对于 Python 中的 print,它取决于版本(它是关键字运算符,但被重新连接到适当的函数)。 【参考方案1】:

您的 shell 可能不知道将脚本作为 python 脚本执行。

添加 shebang 行,如

#!/usr/bin/env python

作为文件的第一行,然后重试。

要检查命令行参数,对于简单的事情,您可以查看sys.argv。对于任何重要的事情,请改用argparse 模块。

【讨论】:

重做shebang。我应该再试试 chmod 吗? 没有必要再次chmod +x

以上是关于如何在Unity中执行Python脚本后让其终端自行关闭的主要内容,如果未能解决你的问题,请参考以下文章

python如何成服务在后台一直运行,或者让其隔几分钟自动运行一次

linux脚本里运行环境变量,不重启终端,重新登陆用户,让其一直有效,在脚本退出后,能被其他程序访问

.net中 用dropdownlist 绑定数据源后让其自动回发刷新页面 显示其他内容 但有时显示的出来 有时现实不出来

Unity脚本执行顺序自研框架

Unity 掷骰子后让玩家的棋子轮流移动

如何在终端中制作 Python 脚本“tab-complete”目录?