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.
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.