问题 Python tcl安装不正确


我刚为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()

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

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.

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

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


4479
2018-05-14 02:30


起源

你有没有对你的标准python路径做一些时髦的事情?我注意到你只指向一些自定义项目区域。 - jdi
有关 包“Tk”的版本冲突:有8.5.2,需要8.5.15,链接表示 belkacem_py 在NAA的帖子。 - Petter Friberg


答案:


关于你能做什么,你可以尝试编辑你的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拉链 从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。

如果这不合适,为什么我仍然回答?为您制作一个体面的答案有助于我更好地理解我的问题。


5
2018-06-08 20:06





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

set "TCL_LIBRARY=D:\Program Files (x86)\Python3.5\tcl\tcl8.6"
set "TK_LIBRARY=D:\Program Files (x86)\Python3.5\tcl\tcl8.6"

4
2017-10-28 08:15





我在ubuntu 11.04上最后一次安装ns2.35时遇到了同样的问题。 安装ns2.35后,得到ns成功安装的消息。然后我在/.bashrc中设置路径。然后我给了ns命令,它给了我同样的错误。

问题是因为,ns可执行文件也在/ usr,这是冲突的。

解:

  1. 通过在终端中输入以下命令转到位置root-usr-local-bin cd / usr / local / bin
  2. 在那里你会找到ns文件。我们只需要通过给出以下命令来删除它 rm ns
  3. 多数民众赞成,你完成了。现在你的ns开始成功运行了。

1
2017-12-07 06:55





使用TCL_Library环境变量的另一个程序可能存在兼容性问题。在附加的线程中,我更改了环境变量路径并修复了我的问题。它可能与您的问题有关:

Python IDLE不会启动


1
2017-12-21 12:33



设置 TCL_Library 至 c:/python276/tcl/tcl8.5 适合我。 - minghua


我正在使用Python 2.7运行PyCharm IDE。 在c:\ Python27 \ tcl \ tcl8.5 \ init.tcl中“包需要-exact Tcl 8.5。2“ 改成

package require -exact Tcl 8.5.9

在c:\ Python27 \ tcl \ tk8.5 \ tk.tcl“包中需要-exact Tk 8.5。2“ 改成:

package require -exact Tcl 8.5.9

这对我有用。


1
2017-12-04 20:19





PATH解决方案对我不起作用。我正在使用Win7 python 2.7。 最后我编辑了2个文件: C:\ Python27 \ TCL \ tk8.5 \ tk.tcl package require -exact Tk 8.5.2  变成   package require Tk 8.5.0-8.6

C:\ Python27 \ TCL \ TCL8.5 \ init.tcl中 package require -exact Tcl 8.5.2  变成 package require Tcl 8.5.0-8.6

这很有效!以前我的IDLE永远不会弹出,但现在它也能正常工作。很酷,谢谢@Jonathan Spooner和@hlongmore


0
2017-08-30 06:32





我想我在windows8 / python2.7下遇到了同样的问题。这是一个安装和环境变量设置的地狱。所有这些都毫无价值。今天我找到了一个解决方案:

在D:下载并安装python(为了保留我的安装),然后将文件夹Tcl复制到我的C:安装中,位于相同的相对位置:C:\ Python27


0
2017-08-11 19:43





在Windows 10中使用mayplotlib.pyplot生成简单的散点图时遇到了类似的问题。我通过在“控制面板>系统和安全>系统>高级系统设置>环境变量>用户变量”中添加新的环境变量来解决:

变量名称:TCL_LIBRARY,变量值= C:\ Python27 \ tcl \ tcl8.5 变量名称:TK_LIBRARY,变量值= C:\ Python27 \ tcl \ tk8.5


0
2018-01-03 17:33