Использование функций Python в Tkinter.Tcl ()

У меня есть куча функций Python. Давайте назовем ихfoo, bar а такжеbaz, Они принимают переменное число строковых аргументов и делают другие сложные вещи (например, доступ к сети).

Я хочу, чтобы «пользователь» (предположим, он знаком только с Tcl) писал сценарии на Tcl с использованием этих функций.

Вот пример (взят изMacPorts) этот пользователь может придумать:

post-configure {
    if {[variant_isset universal]} {
        set conflags ""
        foreach arch ${configure.universal_archs} {
            if {${arch} == "i386"} {append conflags "x86 "} else {
                if {${arch} == "ppc64"} {append conflags "ppc_64 "} else {
                    append conflags ${arch} " "
                }
            }
        }

        set profiles [exec find ${worksrcpath} -name "*.pro"]
        foreach profile ${profiles} {
            reinplace -E "s|^(CONFIG\[ \\t].*)|\\1 ${conflags}|" ${profile}

            # Cures an isolated case
            system "cd ${worksrcpath}/designer && \
                    ${qt_dir}/bin/qmake -spec ${qt_dir}/mkspecs/macx-g++ -macx \
                    -o Makefile python.pro"
        }
    }
}

Вот,variant_issset, reinplace (кроме встроенных в Tcl) реализованы как функции Python.if, foreach, setи т. д. являются обычными конструкциями Tcl.post-configure является функцией Python, которая принимает, в общем, блок кода Tcl, который впоследствии может быть выполнен (что, в свою очередь, в конечном итоге вызовет вышеупомянутые "функции" Python).

Это возможно сделать в Python? Если так, то как?

from Tkinter import *; root= Tk(); root.tk.eval('puts [array get tcl_platform]') это единственная известная мне интеграция, которая, очевидно, очень ограничена (не говоря уже о том, что она запускает сервер X11 на Mac).

Ответы на вопрос(2)

Ваш ответ на вопрос