Python 運行tcl 方式初探
為增強ATOP程序與tcl/tk 的互動性, 探討使用python 編寫ATOP程序后,能夠有效運行現有的TCL 腳本功能,增強ATOP程序的功能。
Python 執行TCL功能有兩種:
1. 進程內執行(內含TCL解析器)使用eval 命令實現
2. 進程外執行 調用tclsh/wish.exe 執行,該方式與目前ATOP 方式一致,不做講解
下面講解第1 種方法
1. Python 運行tcl 腳本
From Tkinter import Tcl
r=Tcl()
r.eval('package require itclx')
r.eval('cd $env(TCLSPACE)/ATOP')
r.eval('source lib/ct/ctCaseDv.tcl')
r.eval('source lib/ct/ctCaseDv.tcl')
使用eval 命令執行tcl腳本。
作用:
1) 可以將常用的 操作,如 Excel 轉tcl, 刷新XML目錄樹,等功能集成到ATOP
2) 加強GUI 和TCL 之間的溝通。
2. 由於 Python 默認的TCL版本是tcl8.5 ,不支持itcl4.0 版本所以需要C:\Python27\DLLs\_tkinter.pyd 文件進行重新編譯,使用tcl8.6版本。
2.1 下載python 2.7 源文件解壓縮,使用vs2008 打開PCbuild\_tkinter.vcproj,
2.2 設置頭 文件目錄為 tcl/include 目錄,設置庫文件目錄為 Tcl\lib 目錄。
2.3 設置 附加依賴項為 tcl86.lib tk86.lib
2.4 選擇項目,點擊 生成即可。
2.5 將生成的_tkinter.pyd 替換Python 安裝目錄dlls目錄下 原文件
2.6 拷貝TCL安裝目錄 bin目錄下的tcl86.dll,tk86.dll
到Python dlls 目錄下
設置環境變量TCL_LIBRARY 為ATOP 的TCL目錄下的 init.tcl 所在的目錄,使用反斜杠 “/”