Swampy.1.1 с Python 3 - PullRequest
       10

Swampy.1.1 с Python 3

3 голосов
/ 30 октября 2009

Я читаю книгу Think Python Аллена Дауни. Для главы 4 нужно использовать набор модулей под названием Swampy . Я скачал и установил его.

Проблема в том, что модули были написаны на Python 2, а у меня Python 3 (в Windows 7 RC1). Когда я запустил модуль TurtleWorld из Swampy, я получил сообщения об ошибках в операторах print и exec, которые теперь являются функциями в Python 3. Я исправил эти ошибки, добавив скобки с print и exec в код модулей GUI и World. Я также получил ошибку, что модуль Tkinter не может быть найден. Оказалось, что в Python 3 имя модуля пишется строчными буквами t.

Третья ошибка сложнее: ImportError: Нет модуля с именем tkFont.

У кого-нибудь есть идеи, пожалуйста? Спасибо.

Ответы [ 4 ]

6 голосов
/ 29 апреля 2012

Похоже, что tkinter наконец догнал Python 3 - tkFont стал 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()
3 голосов
/ 30 октября 2009

Многие важные сторонние библиотеки еще не были переписаны для Python 3; вам придется придерживаться Python 2.x сейчас. Обойти это невозможно. Как говорится на официальной странице загрузки Python ,

Если вы не знаете, какую версию использовать, начать с Python 2.6.4; Больше существующее стороннее программное обеспечение совместим с Python 2, чем Python 3 прямо сейчас.

1 голос
/ 14 июля 2013

ДЛЯ ПОЛЬЗОВАТЕЛЕЙ MAC: Я новичок в Python и столкнулся с точно такой же проблемой. Я пишу это, чтобы другие не тратили несколько часов, пытаясь понять это. Вот что вы делаете:

  • НЕ устанавливайте Python 3 по вышеуказанным причинам, т. Е. Чтобы не пришлось менять весь код Swampy. Вместо этого скачайте последнюю версию Python 2 (я использовал 2.7.5).
  • Затем загрузите файл Swampy-2.1.1.tar.gz отсюда: https://pypi.python.org/pypi/swampy/2.1.1. Извлеките этот файл, дважды щелкнув по нему в папке «Загрузки».
  • Откройте получившуюся папку Swampy 2.1.1. Вы должны увидеть несколько элементов, включая папку swampy.
  • Вот ключевой шаг: перетащите эту папку в последнюю по этому пути: Macintosh HD / Library / Frameworks / Python.framework / Versions / 2.7 / lib / python2.7 / site-packages. ПОВТОРИТЬ: перетащите папку «swampy» и поместите ее в папку «site-packages».
  • После этого запустите Python в терминале и введите «import swampy.TurtleWorld». Если вы видите шевроны (>>>) и не видите сообщения об ошибке, вы можете продолжить уроки.
0 голосов
/ 30 октября 2009

Существует инструмент преобразования для преобразования кода Python 2 для работы с Python 3: http://svn.python.org/view/sandbox/trunk/2to3/

Не уверен, как это распространяется на сторонние библиотеки, но, возможно, стоит передать это через болотный код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...