在python的Tkinter模块中找不到tcl Expect

时间:2013-11-22 13:22:28

标签: python tkinter package tcl expect

我试图在python中重用我的tcl代码但是Expect包没有导入。

>>> from Tkinter import *
>>> tcl = Tcl()
>>> tcl.eval('puts $tcl_version')
8.5
''
>>> tcl.eval('package require expect')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
_tkinter.TclError: can't find package expect

请解释我如何让它发挥作用。我的机器安装了tcl,Expect工作正常。

1 个答案:

答案 0 :(得分:1)

期望应该大写:

tcl.eval('package require Expect')

是的,TCL是一种区分大小写的语言。

更新

我已经确认我的建议适用于我的系统(Linux和Mac)。既然你声称它在你的系统上不起作用,那就让我们进行以下测试:

启动TCL shell:

tclsh

看看你是否可以使用Expect包:

package require Expect

如果您看到错误,则表示您没有安装Expect软件包,或者路径错误。如果不这样做,那么当您启动Python shell时,您的路径会被更改。

在任何一种情况下,我都没有足够的信息来帮助您。如果您仍需要帮助,请发布更多信息,例如您的操作系统和您能想到的其他详细信息。

更新2

在Windows 7计算机上,我安装了ActivePython 2.7.x并观察了您的行为,即未找到Expect包。这种情况发生在32位和64位版本的ActivePython 2.7.x上。接下来,我在同一台机器上安装了32位Cygwin,并选择包含Python和Expect。这一切,一切正常。

此时,您有几个选择:

  1. 使用Cygwin
  2. 如果您使用的是64位Python,则可能无法访问Expect,请参阅此article
  3. 如果您使用的是32位Python,那么同一篇文章提供了一种通过teacup命令安装Expect的方法。