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 所在的目录,使用反斜杠 “/”