我刚为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)进行编码.
关于你可以做什么,你可以尝试编辑你的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:
关于它意味着什么,没有更多的信息,我现在只能做出猜想.我有相反的问题; 我会告诉你它,希望能让你深入了解它可能意味着什么.
我安装了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)
| 归档时间: |
|
| 查看次数: |
33491 次 |
| 最近记录: |