【问题标题】:tcl Expect is not found in Tkinter module of python在 python 的 Tkinter 模块中找不到 tcl Expect
【发布时间】:2013-11-22 13:22:27
【问题描述】:

我试图在 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 工作正常。

【问题讨论】:

  • 我敢打赌,Python 试图使用自己的内置版本,而不是明智地坚持系统构建。不知道怎么解决……
  • 是的,我想要,但不知道它将如何工作??请帮忙!!!

标签: python tkinter package tcl expect


【解决方案1】:

Expect 应大写:

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 包。这发生在 ActivePython 2.7.x 的 32 位和 64 位版本上。接下来,我在同一台机器上安装了 32 位 Cygwin,并选择包含 Python 和 Expect。这一次,一切正常。

此时,您有两个选择:

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

【讨论】:

  • 嗨,在 tcl 中它正在工作,但我的问题。但我需要 >>> from Tkinter import * >>> tcl = Tcl() >>> tcl.eval('puts $tcl_version') 8.5 '' >>> tcl.eval('package require expect') 这应该可以在 Python 中。 -- 我的操作系统是 XP,我使用的是 python 2.7.XX -- 请帮助
猜你喜欢
  • 2023-01-30
  • 2021-03-17
  • 1970-01-01
  • 2011-08-30
  • 2016-09-04
  • 2013-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多