Question

Je lis le livre Pensez Python de Allen Downey. Pour le chapitre 4, il faut utiliser une suite de modules appelée Swampy . Je l'ai téléchargé et installé.

Le problème est que les modules ont été écrits en Python 2 et que j'ai Python 3 (sous Windows 7 RC1). Lorsque j'ai exécuté le module TurtleWorld à partir de Swampy, des messages d'erreur concernant les instructions print et exec, qui fonctionnent maintenant dans Python 3., ont été corrigés en incluant des parenthèses avec print et exec dans le code des modules GUI et World. J'ai également eu une erreur que le module Tkinter n'a pas pu être trouvé. Il s’est avéré que dans Python 3, le nom du module est orthographié avec une lettre minuscule t.

La troisième erreur est plus difficile: ImportError: aucun module nommé tkFont.

Quelqu'un a-t-il une idée, s'il vous plaît? Merci.

Était-ce utile?

La solution

De nombreuses bibliothèques tierces importantes n'ont pas encore été réécrites pour Python 3; vous devrez vous en tenir à Python 2.x pour le moment. Il n'y a pas moyen de contourner cela. Comme il est dit sur la page de téléchargement officielle de Python ,

  

Si vous ne savez pas quelle version utiliser   utiliser, commencez par Python 2.6.4; plus   logiciel tiers existant est   compatible avec Python 2 que Python 3   en ce moment.

Autres conseils

Il semble que tkinter rattrape enfin Python 3 - tkFont est devenu 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()

POUR LES UTILISATEURS MAC: Je suis un débutant en Python et je suis tombé sur le même problème. J'écris ceci pour que les autres ne perdent pas plusieurs heures à essayer de comprendre cela. Voici ce que vous faites:

  • N'installez PAS Python 3 pour les raisons ci-dessus, c'est-à-dire pour éviter de devoir changer tout le code Swampy. À la place, téléchargez la dernière version de Python 2 (j'ai utilisé la version 2.7.5).
  • Téléchargez ensuite le fichier Swampy-2.1.1.tar.gz ici: https: //pypi.python.org/pypi/swampy/2.1.1 . Extrayez ce fichier en double-cliquant dessus dans votre dossier Téléchargements.
  • Ouvrez le dossier résultant, Swampy 2.1.1. Vous devriez voir plusieurs éléments, y compris le dossier swampy.
  • Voici l'étape clé: faites glisser ce dossier vers le dernier de ce chemin: Macintosh HD / Bibliothèque / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / site-packages. POUR RÉPÉTER: faites glisser le dossier "swampy" et déposez-le dans le " site-packages " dossier.
  • Une fois cette opération effectuée, lancez Python dans le terminal et tapez "import swampy.TurtleWorld". Si vous voyez les chevrons (> > >) et que vous ne voyez pas de message d'erreur, vous pouvez continuer les leçons.

Il existe un outil de conversion permettant de convertir le code Python 2 en Python 3: http://svn.python.org/view/sandbox/trunk/2to3/

Je ne sais pas comment cela s'étend aux bibliothèques tierces, mais cela vaut peut-être la peine de passer cela au-dessus du code marécageux.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top