Pergunta

Estou lendo o livro Pense Python por Allen Downey. Para o capítulo 4, um tem que usar um conjunto de módulos chamados Swampy . Tenho baixado e instalado.

O problema é que os módulos foram escritos em Python 2 e eu tenho Python 3 (em Windows 7 RC1). Quando eu corri o módulo TurtleWorld de Swampy, recebi mensagens de erro sobre a impressão e as declarações exec, que são agora funções em Python 3. I fixos esses erros, incluindo parênteses com impressão e exec no código dos módulos GUI e Mundo. Eu também tenho um erro que o módulo Tkinter não pôde ser encontrado. Descobriu-se que em Python 3, o nome do módulo é escrito com letras minúsculas t.

O terceiro erro é mais difícil: ImportError:. No módulo chamado tkFont

Alguém tem alguma idéia, por favor? Obrigado.

Foi útil?

Solução

Muitas bibliotecas importantes de terceiros ainda não foi reescrito para Python 3; você vai ter que furar a Python 2.x para agora. Não há maneira de contornar isso. Como se diz na Python oficial de download página ,

Se você não sabe qual versão usar, começar com o Python 2.6.4; Mais software de terceiros existente é compatível com o Python 2 que Python 3 agora.

Outras dicas

Parece que tkinter está finalmente recuperar o atraso com Python 3 - tkFont tornou-se 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()

Usuários para Mac: Eu sou um novato Python e me deparei com exatamente o mesmo problema. Eu estou escrevendo isso para os outros não desperdiçar várias horas tentando descobrir isso. Aqui está o que você faz:

  • Não instale Python 3 pelas razões acima expostas, ou seja, para evitar ter que mudar todo o código Swampy. Em vez disso, baixe a última versão do Python 2 (eu usei 2.7.5).
  • Em seguida, baixar o arquivo Swampy-2.1.1.tar.gz a partir daqui: https: //pypi.python.org/pypi/swampy/2.1.1 . Extraia este arquivo clicando duas vezes sobre ele na pasta Downloads.
  • Abra a pasta resultante, Swampy 2.1.1. Você deverá ver vários itens, incluindo a pasta, pantanoso.
  • Aqui está a chave passo: Drag esta pasta para o último neste caminho: / Library / Frameworks / Python.framework / Versões / 2,7 / lib / python2.7 / site-packages Macintosh HD. Para repetir: arraste a pasta "pantanosa" e solte-o na pasta "site-packages".
  • Depois de fazer isso, o fogo se Python no terminal e digite "swampy.TurtleWorld importação." Se você ver as divisas (>>>) e você não vê uma mensagem de erro, você está pronto para continuar as aulas.

Há uma ferramenta de conversão para converter Python 2 código para trabalhar com Python 3: http://svn.python.org/view/sandbox/trunk/2to3/

Não sei como isso se estende a bibliotecas 3o partido, mas pode valer a pena passar esta sobre o código pantanosa.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top