Pregunta

Estoy leyendo el libro Think Python de Allen Downey. Para el capítulo 4, uno tiene que usar un conjunto de módulos llamado Swampy . Lo he descargado e instalado.

El problema es que los módulos se escribieron en Python 2 y tengo Python 3 (en Windows 7 RC1). Cuando ejecuté el módulo TurtleWorld de Swampy, recibí mensajes de error sobre las declaraciones print y exec, que ahora son funciones en Python 3. Solucioné esos errores al incluir paréntesis con print y exec en el código de los módulos GUI y World. También recibí un error de que no se pudo encontrar el módulo Tkinter. Resultó que en Python 3, el nombre del módulo se escribe en minúscula t.

El tercer error es más difícil: ImportError: ningún módulo llamado tkFont.

¿Alguien tiene alguna idea, por favor? Gracias.

¿Fue útil?

Solución

Muchas bibliotecas importantes de terceros aún no se han reescrito para Python 3; Tendrás que quedarte con Python 2.x por ahora. No hay manera de evitarlo. Como dice en la página oficial de descarga de Python ,

  

Si no sabe qué versión elegir   uso, comience con Python 2.6.4; Más   el software de terceros existente es   compatible con Python 2 que Python 3   ahora mismo.

Otros consejos

Parece que tkinter finalmente se está poniendo al día con Python 3 - tkFont se ha convertido en tkinter.font

http://docs.pythonsprints.com/python3_porting/py-porting.html

#!/usr/bin/env python3.2
# -*- coding: utf-8 -*-
#
#       font_ex.py
#       

import tkinter

top = tkinter.Tk()

butt01 = tkinter.Button(top, text="Hello World", font=('Helvetica', 24,))

custom_font_serif = ('Times', 24, 'bold')
butt02 = tkinter.Button(top, text="Hello World", font=custom_font_serif)

custom_font_sans = ('Helvetica', 36, 'italic')
butt03 = tkinter.Button(top, text="Hello World", font=custom_font_sans)

butt01.pack()
butt02.pack()
butt03.pack()

top.mainloop()

PARA USUARIOS DE MAC: Soy un novato de Python y encontré exactamente el mismo problema. Estoy escribiendo esto para que otros no pierdan varias horas tratando de resolver esto. Esto es lo que haces:

  • NO instale Python 3 por los motivos anteriores, es decir, para evitar tener que cambiar todo el código Swampy. En su lugar, descargue la última versión de Python 2 (usé 2.7.5).
  • Luego descargue el archivo Swampy-2.1.1.tar.gz desde aquí: https: //pypi.python.org/pypi/swampy/2.1.1 . Extraiga este archivo haciendo doble clic en él en su carpeta de Descargas.
  • Abra la carpeta resultante, Swampy 2.1.1. Debería ver varios elementos, incluida la carpeta, pantanosa.
  • Aquí está el paso clave: arrastre esta carpeta al último en esta ruta: Macintosh HD / Library / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / site-packages. PARA REPETIR: arrastre la carpeta "swampy" y colóquelo en los "paquetes de sitio" carpeta.
  • Una vez que hagas eso, abre Python en la terminal y escribe "import swampy.TurtleWorld". Si ve los galones (> > >) y no ve un mensaje de error, puede continuar las lecciones.

Hay una herramienta de conversión para convertir el código de Python 2 para que funcione con Python 3: http://svn.python.org/view/sandbox/trunk/2to3/

No estoy seguro de cómo esto se extiende a las bibliotecas de terceros, pero podría valer la pena pasar esto por el código pantanoso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top