2012-05-14 27 views
11

Acabo de instalar graphics.py para python. Entonces, cuando traté de ejecutar el siguiente código:Python tcl no está instalado correctamente

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() 

Mi intérprete me dio esta extraña información:

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. 

¿Qué significa? ¿Que puedo hacer?

PD: Estoy usando Eclipse (PyDev) para la codificación.

+0

¿Hizo algo funky con su ruta de python estándar? Me doy cuenta de que estás apuntando a un área de proyecto personalizado solamente. – jdi

+0

Relacionados [conflicto de versión para el paquete "Tk": tienen 8.5.2, necesitan exactamente 8.5.15] (http://stackoverflow.com/questions/26706022/version-conflict-for-package-tk-have-8-5 -2-need-exactly-8-5-15), enlace indicado por [belkacem_py] (http://stackoverflow.com/users/7324887/belkacem-py) en la publicación de NAA. –

Respuesta

5

En cuanto a lo que puede hacer, puede intentar editar el archivo de init.tcl a leer algo como package require Tcl 8.5.0-8.6, o si eso no funciona, usted puede intentar package require -exact Tcl 8.5.2. También tuve que editar mi archivo tcl \ tk8.5 \ tk.tcl de la misma manera, para Tk en lugar de Tcl.

Si la edición del archivo no funciona para usted, puede descargar e instalar la última Tcl de:

  • fuente utilizando la versión más reciente de sourceforge. Esto requerirá tener un compilador aceptable. Por ejemplo, consulte blog.victorjabur.com/2011/06/05/compiling-python-2-7-modules-on-windows-32-and-64-using-msvc-2008-express/ o stackoverflow. com/questions/4218613/building-a-python-module-on-windows-using-ms-compiler.
  • la última ActiveState community version. Esta puede ser la opción más fácil si tiene permiso para instalar. Al ver que esto es para CS 101, es posible que los administradores de su laboratorio no le permitan ese permiso (ya sea por política o por tecnología). Por supuesto, eso también probablemente significa que esta respuesta llega demasiado tarde para ayudar con su necesidad inmediata.

En cuanto a lo que significa, sin más información, sólo puedo hacer conjeturas en este momento. Tuve el problema inverso; Te contaré sobre esto con la esperanza de que te dé una idea de lo que podría significar.

Tengo 8.5.9 instalado, pero init.tcl requería 8.5.2. Supongo que mi problema fue causado por la instalación de ActiveState python, luego de python oficial (ambos de 2.7, 64 bits) y/o paquetes adicionales que instalé más tarde. Hay una nota en la parte inferior de this download page con respecto a Tcl/Tk en MacOS que podría interpretarse como que también hay lugar para problemas en la PC. ActiveState Python 2.7 incluye Tcl/Tk 8.5.9, como se documentó en here. Usando 7-zip para abrir los archivos msi de ActiveState y Python.org, y grepping para "tcl" y luego "require", puedo ver que el init.tcl en ActiveState msi especifica package require -exact Tcl 8.5.9.

Supongo que el requisito 8.5.2 provino de la instalación normal de python (que al parecer es menos grebleable), o algún paquete que instalé más tarde. La ejecución del msi de ActiveState en modo reparación no soluciona el problema, ni tampoco ejecuta el Python msi en modo reparación.

P.S Si esto no es oportuno, ¿por qué sigo respondiendo? Elaborar una respuesta decente para ti me ayudó a entender mejor mi problema.

1

Me enfrenté al mismo problema durante mi última instalación de ns2.35 en ubuntu 11.04. Después de instalar ns2.35, recibí el mensaje de instalación exitosa de ns. Luego establecí el camino en /.bashrc. Luego di el comando ns que me dio el mismo error que obtuviste.

El problema se debe a que el ejecutable ns también está en/usr, lo cual es conflictivo.

Solución:

  1. Ir a la ubicación raíz-USR-local-bin dando siguiente comando en el terminal cd/usr/local/bin
  2. Hay que puedes encontrar el archivo ns. Solo tenemos que eliminarlo dando el siguiente comando rm ns
  3. Eso es, listo. Ahora tu ns comienza a funcionar con éxito.
1

Puede haber un problema de compatibilidad con otro programa que utiliza la variable de entorno TCL_Library. En el hilo adjunto cambié la ruta de la variable de entorno y solucionó mi problema. Puede que sea relevante para su problema:

Python IDLE won´t start

+0

Configurar 'TCL_Library' a' c:/python276/tcl/tcl8.5' funciona para mí. – minghua

0

La solución PATH did't trabajo para mí. Estoy usando Win7 python 2.7. Finalmente Editado 2 archivos: C: \ python27 \ tcl \ tk8.5 \ tk.tcl package require -exact Tk 8.5.2 cambio en package require Tk 8.5.0-8.6

C: \ python27 \ tcl \ tcl8.5 \ init.tcl package require -exact Tcl 8.5.2 cambiar a package require Tcl 8.5.0-8.6

Y esto funciona! Anteriormente mi IDLE nunca aparece, pero ahora también funciona. Cool, gracias @Jonathan Spooner y @hlongmore

1

Estoy ejecutando PyCharm IDE con Python 2.7. Dentro c: \ python27 \ tcl \ tcl8.5 \ init.tcl "paquete requiere -exact Tcl 8.5 ." El cambio a

package require -exact Tcl 8.5.9 

Dentro c: \ python27 \ tcl \ tk8.5 \ tk .tcl "paquete requiere -exact Tk 8.5 ." El cambio a:

package require -exact Tcl 8.5.9 

Esto funcionó para mí.

0

Creo que tuve el mismo problema en windows8/python2.7. Fue un infierno de instalaciones y configuración de variables env. Todos ellos sin valor. Hoy he encontrado una solución:

Descarga e instalación de pitón en D: (a fin de preservar mi instalación) y luego copiar la carpeta Tcl en mi C: la instalación en la misma posición relativa: C: \ python27

3

I sloved modificando mi guión Activar:

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

tuve un problema similar cuando se genera un gráfico de dispersión simple usando mayplotlib.pyplot en Windows 10.I resuelto mediante la adición de las nuevas variables de entorno en el "Panel de control> Sistema y Seguridad> Sistema> Configuración avanzada del sistema> Variables de entorno> Variables de usuario para \ ":

Nombre de variable: TCL_LIBRARY, valor de variable = C: \ Python27 \ tcl \ tcl8.5 Nombre de la variable: TK_LIBRARY, valor de la variable = C: \ Python27 \ tcl \ tk8.5

Cuestiones relacionadas