Знаете какие-нибудь творческие способы взаимодействия Python с Tcl? - PullRequest
17 голосов
/ 17 июня 2009

Вот ситуация. Компания, в которой я работаю, имеет довольно мало Tcl-кода, но некоторые из них хотят начать использовать python. Было бы неплохо иметь возможность повторно использовать существующий код Tcl, потому что эти деньги уже потрачены. Кроме того, у некоторого испытательного оборудования есть только API-интерфейсы Tcl.

Итак, один из способов, о которых я подумал, - использовать модуль подпроцесса для вызова некоторых сценариев Tcl.

  • Является ли подпроцесс моей лучшей ставкой?
  • Кто-нибудь использовал этот довольно новый кусок кода: Оперение ? Если да, то каков твой опыт (не только для ТЗ)?
  • Есть ли другие возможные способы, которые я не рассмотрел?

Ответы [ 3 ]

19 голосов
/ 17 июня 2009

Надеюсь, ты готов к этому. Стандартный Python

import Tkinter
tclsh = Tkinter.Tcl()
tclsh.eval("""
    proc unknown args {puts "Hello World!"}
    }"!dlroW olleH" stup{ sgra nwonknu corp
""")

Редактировать в Re, чтобы комментировать : интерпретатор tcl Python не знает о других установленных компонентах tcl. Вы можете справиться с этим, добавив расширения обычным способом в фактически используемый Python tcl. Вот ссылка с некоторыми деталями

3 голосов
/ 17 июня 2009

Это можно сделать.

http://wiki.tcl.tk/13312

Конкретно посмотрите на расширение typcl.

Typcl немного странный ... Это расширение для использования Tcl из Python. Это на самом деле не требует CriTcl и может быть сделано в стандартном C.

Этот код демонстрирует использование Tcl в качестве разделяемой библиотеки и подключение к ней во время выполнения (архитектура заглушек Tcl делает это восхитительно простым). Кроме того, Typcl избегает преобразования строк, где это возможно (в обе стороны).

0 голосов
/ 17 июня 2009

Я сам этим не пользовался, но SWIG может вам помочь:

http://www.swig.org/Doc1.1/HTML/Tcl.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...