2009-06-16 12 views
17

İşte durum. Çalıştığım şirketin biraz Tcl kodu var, ancak bazıları python kullanmaya başlamak istiyor. Mevcut Tcl kodunun bazılarını yeniden kullanabilmemiz güzel olurdu, çünkü bu zaten harcanan para. Ayrıca, bazı test ekipmanlarının sadece Tcl API'leri vardır.Python'u Tcl ile arayüzlemek için herhangi bir yaratıcı yolu biliyor musunuz?

Bu nedenle, düşündüğüm yollardan biri, bazı Tcl komut dosyalarına çağrı yapmak için altişlemci modülünü kullanmaktı.

  • Alt işlem en iyi seçeneğim mi?
  • Bu oldukça yeni bir kod parçası kullanan oldu mu: Plumage? Eğer öyleyse deneyiminiz nedir (sadece Tk için değil)?
  • Değerlendirmediğim diğer olası yollar? Kendim kullanılmaz, ama yudum size yardımcı olabilecek

cevap

19

Umarım bunun için hazırsınızdır. Re Standart Python

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

Düzenleme yorum yapmak: Python'un tcl tercüman diğer yüklü tcl bileşenlerinin farkında değildir. Bunu, tcl python'un gerçekte kullandığı yollara normal şekilde ekleyerek başarabilirsiniz. İşte bu yüksek seviyeli dillerle C veya C++ kodu sarmak için kullanılan düşünen bazı detaylar

+0

Bahşiş için teşekkürler. Bu, yüklü diğer Tcl kitaplıkları ile ne kadar iyi çalışır? –

+0

Hmm. Bunu düşünmeye gelince, diğer TCL kurulumlarının farkında olmamakla ilgili yorum, platformun özelliklerine bağlı olabilir. En az Windows ikili kurulumunda başka bir TCL kullanma seçeneği yoktur.Kaynaktan bir yapı mevcut herhangi bir tcl'yi kullanabilirse şaşırmam. – SingleNegationElimination

+0

Tekrar teşekkürler TokenMacGuy. Bu çok yardımcı olur. Python ile uzun bir süredir çalışmama rağmen, Tkinter modülüne hiç bakmadım (wxPython'u tercih ettim). Sadece Python'a gömülü Tcl yerine saf GUI widget'ları olduğunu düşündüm. Bu son bağlantı da çok yardımcı oldu. –

3

Bu yapılabilir.

http://wiki.tcl.tk/13312

Specificly typcl uzantısı bak.

Typcl Python den Tcl kullanmak için bir uzantısı var ... biraz garip. Gerçekten CriTcl gerektirmez ve standart C.

Bu kod paylaşımlı kitaplık olarak Tcl kullanmak gösteriyor yapılmış olabilir ve (Tcl en koçanları mimarisi bu nefis basit hale getirir) çalışma zamanında buna içine çengel. Ayrıca, Typcl mümkün olduğunda (her iki şekilde) dize dönüşümleri önler.

+0

İlginç. Bunu, Unix sistemleri için değil Windows için mi söylüyorum? –

+0

Evet ve hayır: Unix altında sadece Typcl'in farkındayım, ancak tüm parçaları çapraz platformdur; Yolların küçük bir "rölativizasyonu", Windows altında çalışmayı gerektiriyorsa, beni şaşırtmayacaktır. Her halükarda, daha önce bahsettiğimiz Wiki sayfası, bu temanın Windows'da * kullanıldığı * diğer varyantlarını işaret etmektedir. –

İlgili konular