我使用import tkinter
来执行Tcl
脚本。在
例如:
import tkinter
runTCL = tkinter.Tk()
runTCL.tk.eval('puts [info tclversion]')
我的Python3.5
中安装的默认Tcl
lib是Tcl8.6
。在
我的目的是访问IXIA并通过脚本自动配置它。在
问题是我的IXIA(带有IxOS4.10
)提供的api只能由Tcl8.4
lib访问,更新的版本是不可接受的。在
我知道在类Unix系统中使用./configure --with-tcltk-libs
和类似的东西可能很容易。在
但是当我在我的机器上使用import tkinter
时,如何用Tcl8.4
库重新构建我的Python3.5
?在
提前谢谢。在
最简单的方法可能是以subprocess的形式运行代码来访问IXIA,这样它就可以使用tcl8.4,而不会中断Python使用的版本(这会产生很多其他后果)。现在tcl8.4不再支持了,但Tcl的最新版本是8.4.20,而且是几年前才推出的,因此它在很大程度上与当前的构建系统兼容。(您可以从SourceForge获取8.4.20源代码。)
在构建Tcl时,假设您的目标是Unix,那么可以使用},…)。如果您想在其他地方使用Tcl包,可以使用
prefix=
选项来配置它的安装位置configure
;默认位置是/usr/local
(例如,tclsh8.4
二进制文件在/usr/local/bin
中,/usr/local/lib
,文档放在{TCLLIBPATH
环境变量来表示它们的位置。另外,如果作为子进程运行,则可能需要调整标准输出上使用的缓冲级别:通常,您可能会在Python代码中用
runTCL.tk.eval
来打印要运行到子进程管道的代码并读回结果。我们需要做一些工作来使它整齐地工作,但这类事情已经在其他问题中讨论过了。唯一的主要问题是,您正在为子流程使用不受支持的代码版本。在相关问题 更多 >
编程相关推荐