如何在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会一直处于等待状态不会执行下一个脚本,请问有什么改善方法吗?
用这个方法会终止程序的。追问
即使加上这句,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 绑定数据源后让其自动回发刷新页面 显示其他内容 但有时显示的出来 有时现实不出来