Python tcl安装不正确

psi*_*ana 11 python graphics

我刚为python安装了graphics.py.然后,当我尝试运行以下代码时:

    from graphics import *

    def main():
        win = GraphWin("My Circle", 100, 100)
        c = Circle(Point(50,50), 10)
        c.draw(win)
        win.getMouse() # Pause to view result
        win.close()    # Close window when done

    main()
Run Code Online (Sandbox Code Playgroud)

我的口译员给了我这个奇怪的信息:

Traceback (most recent call last):
File "F:\CS 101\Python\projects\packer.py", line 8, in <module>
from graphics import *
File "F:\CS 101\Python\lib\site-packages\graphics.py", line 168, in <module>
_root = tk.Tk()
File "F:\CS 101\Python\lib\tkinter\__init__.py", line 1674, in __init__
self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects,                            useTk, sync, use)
_tkinter.TclError: Can't find a usable init.tcl in the following directories: 
{F:\CS 101\Python\tcl\tcl8.5.9} {F:/CS 101/Python/tcl/tcl8.5} {F:/CS        101/Python/lib/tcl8.5} {F:/CS 101/lib/tcl8.5} F:/lib/tcl8.5 {F:/CS 101/library} F:/library     F:/tcl8.5.2/library F:/tcl8.5.2/library

F:/CS 101/Python/tcl/tcl8.5/init.tcl: version conflict for package "Tcl": have 8.5.2,            need exactly 8.5.9
version conflict for package "Tcl": have 8.5.2, need exactly 8.5.9
while executing
"package require -exact Tcl 8.5.9"
(file "F:/CS 101/Python/tcl/tcl8.5/init.tcl" line 20)
invoked from within
"source {F:/CS 101/Python/tcl/tcl8.5/init.tcl}"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $tclfile]"


This probably means that Tcl wasn't installed properly.
Run Code Online (Sandbox Code Playgroud)

这是什么意思?我能做什么?

PS:我正在使用Eclipse(PyDev)进行编码.

hlo*_*ore 5

关于你可以做什么,你可以尝试编辑你的init.tcl文件来读取类似的东西package require Tcl 8.5.0-8.6,或者如果这不起作用你可以尝试package require -exact Tcl 8.5.2.我还必须以相同的方式编辑我的tcl\tk8.5\tk.tcl文件,对于Tk而不是Tcl.

如果编辑文件不适合您,您可以从以下位置下载并安装最新的Tcl:

  • 源码使用sourceforge的最新版本.这将需要一个可接受的编译器.例如,请参阅blog.victorjabur.com/2011/06/05/compiling-python-2-7-modules-on-windows-32-and-64-using-msvc-2008-express/stackoverflow.com/questions/4218613/building-a-python-module-on-windows-using-ms-compiler.
  • 最新的ActiveState社区版本.如果您有权安装,这可能是最简单的选择.看到这是针对CS 101的,您的实验室管理员可能不会允许您获得该许可(无论是通过策略还是技术).当然,这也可能意味着这个答案来得太晚,无法满足您的迫切需求.

关于它意味着什么,没有更多的信息,我现在只能做出猜想.我有相反的问题; 我会告诉你它,希望能让你深入了解它可能意味着什么.

我安装了8.5.9,但init.tcl需要8.5.2.我猜我的问题是由安装ActiveState python,然后是官方python(2.7,64位)和/或我后来安装的其他软件包引起的.这个下载页面底部有一个 关于MacOS 的Tcl/Tk的说明,可以解释为PC上也有麻烦的余地.ActiveState Python 2.7包括Tcl/Tk 8.5.9,如此处所述.使用7-zip从ActiveState和Python.org打开msi文件,然后按"tcl"然后"require",我可以看到ActiveState msi中的init.tcl指定package require -exact Tcl 8.5.9.

我的猜测是8.5.2的要求来自常规的python安装(显然不那么容易),或者我后来安装的一些软件包.在修复模式下运行ActiveState msi不能解决问题,也无法在修复模式下运行Python msi.

PS如果这不及时,为什么我仍然回答?为你制定一个体面的答案帮助我更好地理解我的问题.


小智 5

我通过修改激活脚本解决了问题:

set "TCL_LIBRARY=D:\Program Files (x86)\Python3.5\tcl\tcl8.6"
set "TK_LIBRARY=D:\Program Files (x86)\Python3.5\tcl\tcl8.6"
Run Code Online (Sandbox Code Playgroud)