Это довольно старый поток, но я недавно наткнулся на Tkinter.Tcl()
, который дает вам прямой доступ к интерпретатору Tcl в python без необходимости создавать Tk GUI, так как Tkinter.Tk()
требует .
Пример ... предположим, что у вас есть Tcl-файл (foo.tcl
) с процедурой с именем main
, для которой в качестве аргумента требуется одно имя файла ... main
возвращает строку, полученную из чтения foo.tcl
.
from Tkinter import Tcl
MYFILE = 'bar.txt'
tcl = Tcl()
# Execute proc main from foo.tcl with MYFILE as the arg
tcl.eval('source foo.tcl')
tcl_str = tcl.eval('main %s' % MYFILE)
# Access the contents of a Tcl variable, $tclVar from python
tcl.eval('set tclVar foobarme')
tclVar = tcl.eval('return $tclVar')
Я не нашел другого способа доступа к объектам Tcl из python, кроме как через возвращаемое значение, но это дает вам способ взаимодействия с процессорами Tcl. Кроме того, вы можете экспортировать функции Python в Tcl, как описано в Использование функций Python в Tkinter.Tcl ()