Conosci qualche modo creativo per interfacciare Python con Tcl?
Domanda
Ecco la situazione. La società per cui lavoro ha un bel po 'di codice Tcl esistente, ma alcuni di loro vogliono iniziare a usare Python. Sarebbe bello poter riutilizzare parte del codice Tcl esistente, perché sono soldi già spesi. Inoltre, alcune delle apparecchiature di test hanno solo API Tcl.
Quindi, uno dei modi in cui ho pensato era usare il modulo di sottoprocesso per chiamare alcuni script Tcl.
- Il sottoprocesso è la mia scommessa migliore?
- Qualcuno ha usato questo codice abbastanza nuovo: Piumaggio ? In caso affermativo qual è la tua esperienza (non solo per Tk)?
- Altri possibili modi che non ho preso in considerazione?
Soluzione
Spero che tu sia pronto per questo. Python standard
import Tkinter
tclsh = Tkinter.Tcl()
tclsh.eval("""
proc unknown args {puts "Hello World!"}
}"!dlroW olleH" stup{ sgra nwonknu corp
""")
Modifica in Re per commentare : l'interprete tcl di Python non è a conoscenza di altri componenti tcl installati. Puoi gestirlo aggiungendo le estensioni nel solito modo che tcl python effettivamente utilizza. Ecco un link con alcuni dettagli
Altri suggerimenti
Questo può essere fatto.
Guarda in particolare l'estensione typcl.
Typcl è un po 'strano ... È un'estensione per usare Tcl da Python. In realtà non richiede CriTcl e avrebbe potuto essere fatto nello standard C.
Questo codice dimostra l'utilizzo di Tcl come libreria condivisa e l'aggancio in esso in fase di esecuzione (l'architettura degli stub di Tcl lo rende deliziosamente semplice). Inoltre, Typcl evita le conversioni di stringa ove possibile (in entrambi i modi).
Non l'ho usato da solo, ma SWIG potrebbe aiutarti: