2013-11-22 67 views
1

我试图在python中重新使用我的tcl代码,但是Expect包没有导入。tcl期望没有在python的Tkinter模块中找到

>>> 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工作正常。

+0

我敢打赌,这是Python试图使用自己的内置版本,而不是明智地坚持系统构建。不知道如何修复... –

+0

是的,我想但不知道它会如何工作?请帮忙 !!! – user3021191

回答

0

期待应该大写:

tcl.eval('package require Expect') 

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

更新

我已验证我的建议对我的系统(Linux和Mac)有效。既然你声称它没有在您的系统,让我们做如下测试:

启动TCL壳:

tclsh 

看看你能不能用Expect软件包:

package require Expect 

如果你看到错误,这意味着你没有安装Expect软件包,或者路径错误。如果你不这样做,那么当你启动Python shell时,你的路径会被改变。

无论哪种情况,我都没有足够的信息来帮助您。如果您仍然需要帮助,请发布更多信息,例如您的操作系统以及您可以想到的其他详细信息。

更新2

在Windows 7的机器,我安装了ActivePython的2.7.x和观察你的行为,未发现即期望包。这发生在32位和64位版本的ActivePython 2.7.x上。接下来,我在同一台机器上安装了32位Cygwin,并选择包含Python和Expect。这一次,一切正常。

在这一点上,你有两个选择:

  1. 使用Cygwin
  2. 如果使用64位的Python,你可能不能够访问想到,看到这个article
  3. 如果您使用的是32位Python,则同一篇文章提出了一种通过teacup命令安装Expect的方法。
+0

tcl.eval('包需要期待')不,它不是工作 – user3021191

+0

请看我的更新。 –

+0

嗨海,在tcl它正在工作,但我的问题。但我需要>>> Tkinter import * >>> tcl = Tcl() >>> tcl.eval('puts $ tcl_version') 8.5 '' >>> tcl.eval('package require ')这应该在Python中工作。 - 我的操作系统是XP,我使用python 2.7.XX - 请帮助 – user3021191