Domanda

Sto leggendo il libro Think Python di Allen Downey. Per il capitolo 4, si deve usare una suite di moduli chiamata Swampy . L'ho scaricato e installato.

Il problema è che i moduli sono stati scritti in Python 2 e ho Python 3 (in Windows 7 RC1). Quando ho eseguito il modulo TurtleWorld da Swampy, ho ricevuto messaggi di errore sulle istruzioni print ed exec, che ora sono funzioni in Python 3. Ho corretto quegli errori includendo le parentesi con print ed exec nel codice della GUI e dei moduli World. Ho anche avuto un errore che non è stato possibile trovare il modulo Tkinter. Si è scoperto che in Python 3, il nome del modulo è scritto con una minuscola t.

Il terzo errore è più difficile: ImportError: nessun modulo chiamato tkFont.

Qualcuno ha qualche idea, per favore? Grazie.

È stato utile?

Soluzione

Molte importanti librerie di terze parti non sono state ancora riscritte per Python 3; per il momento dovrai attenersi a Python 2.x. Non c'è modo di aggirarlo. Come si dice nella pagina di download ufficiale di Python ,

  

Se non sai a quale versione   usa, inizia con Python 2.6.4; Di Più   software di terze parti esistente è   compatibile con Python 2 rispetto a Python 3   proprio ora.

Altri suggerimenti

Sembra che tkinter stia finalmente raggiungendo Python 3 - tkFont è diventato 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()

PER UTENTI MAC: Sono un principiante di Python e ho riscontrato lo stesso identico problema. Sto scrivendo questo in modo che altri non perdano diverse ore nel tentativo di capirlo. Ecco cosa fai:

  • NON installare Python 3 per i motivi di cui sopra, vale a dire per evitare di dover cambiare tutto il codice Swampy. Invece, scarica l'ultima versione di Python 2 (ho usato 2.7.5).
  • Quindi scaricare il file Swampy-2.1.1.tar.gz da qui: https: //pypi.python.org/pypi/swampy/2.1.1 . Estrai questo file facendo doppio clic su di esso nella cartella Download.
  • Apri la cartella risultante, Swampy 2.1.1. Dovresti vedere diversi elementi, inclusa la cartella, paludosa.
  • Ecco il passaggio chiave: trascina questa cartella sull'ultima in questo percorso: Macintosh HD / Library / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / site-pacchetti. PER RIPETERE: trascina la cartella " swampy " e rilascialo nei "pacchetti-sito" " cartella.
  • Una volta fatto ciò, avvia Python nel terminale e digita " import swampy.TurtleWorld. " Se vedi i galloni (> > >) e non vedi un messaggio di errore, puoi continuare le lezioni.

Esiste uno strumento di conversione per convertire il codice Python 2 in modo che funzioni con Python 3: http://svn.python.org/view/sandbox/trunk/2to3/

Non sono sicuro di come questo si estenda alle librerie di terze parti, ma potrebbe valere la pena passarlo sul codice paludoso.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top