【发布时间】:2019-08-07 06:02:03
【问题描述】:
我需要在 TCL 脚本中调用 Python 代码并检查其退出状态以确定 Python 代码是否成功执行。
TCL 脚本:
if {[catch {exec "python C:\\tools\\tcl\\myexamples\\sample.py"} results] == 0 } {
puts "No Error $results"
} else {
puts "Error $results"
}
Python 代码:
import sys
def main():
return 0
if __name__ == '__main__':
return main()
但是,当我执行 TCL 脚本时,出现以下错误:
$ tclsh85.exe ../myexamples/1.tcl
Error couldn't execute "python C:\tools\tcl\myexamples\sample.py": no such file or directory
但是文件确实存在:
C:\tools\tcl\myexamples>dir sample.py
Directory of C:\tools\tcl\myexamples
07-08-2019 11:23 AM 199 sample.py
1 File(s) 199 bytes
问题是什么,我该如何解决?
【问题讨论】:
-
我的 TCL 生锈了,但我认为 TCL 脚本正在尝试将“python c:\\tools\\etc”作为文件路径执行......似乎 exec 可以使用多个命令行论据。 wiki.tcl-lang.org/page/exec,所以你不需要引号。
-
正如@aschultz 所说,TCL 似乎认为这是一个命令。也许在 python 之后关闭引号并再次打开它们以获取 python 脚本的路径。