2014-05-28 10 views
0

Сценарий My Automation выполняется с использованием Python, и мне нужно управлять spirent Testcenter (который поддерживает только tcl). я могу общаться с Spirent через Tcl скрипт, если я называю тот же сценарий с помощью питона я получаю ошибку нижезапуск скрипта tcl через python

TCL Файл - Stc1.tcl

package require SpirentTestCenter 
source [ file join [ file dirname [ info script ] ] {ipv6_max_session_header.tcl} ] 
puts "SpirentTestCenter system version:\t[stc::get system1 -Version]" 

Python Файл - tcl_py.py

import Tkinter 
import os 

r=Tkinter.Tk() 
r.tk.eval('source Stc_1.tcl') 

Ошибка, что я получаю -

C:\Python27\MyScripts>python tcl_py.py 
Traceback (most recent call last): 
    File "tcl_py.py", line 5, in <module> 
    r.tk.eval('source Stc_1.tcl') 
_tkinter.TclError: can't find package SpirentTestCenter 
+2

Если SpirentTestCenter является включенным пакетом, вы можете просто добавить правильный путь, в котором файл pkgIndex.tcl пакета находится в переменной ':: auto_path' в Tcl, и он может загружаться. Но это может быть испечено в интерпретаторе tcl также как статический пакет, так называемый bigshell, если это так, вы не можете (легко) использовать его в tkinter, не достраивая tkinter к этой версии Tcl. – schlenk

+2

Можете ли вы использовать подпроцесс для создания Stc1.tcl? –

+0

Спасибо за ваши ребята. Я смог выполнить скрипт TCL с использованием подпроцесса Python. – hariudkmr

ответ

0

в качестве альтернативы питона подпроцесса, вещь, которую вы могли бы do открывает локальный сеанс SSH в вашем скрипте python и открывает оболочку tcl там (используйте команду expect или paramiko shell).

Смежные вопросы