Вопрос

Я читаю эту книгу Подумай о Python автор: Аллен Дауни.Для главы 4 необходимо использовать набор модулей, называемых Болотистый.Я скачал и установил его.

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

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

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

Это было полезно?

Решение

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

  

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

Другие советы

Похоже, что 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()

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

  • НЕ устанавливайте Python 3 по вышеуказанным причинам, т.е.чтобы избежать необходимости менять весь Болотистый код.Вместо этого загрузите последнюю версию 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/Библиотека/Фреймворки/Python.framework/Версии/2.7/библиотека/python2.7/site-пакеты.ПОВТОРЯТЬ:перетащите папку "swampy" и поместите ее в папку "site-packages".
  • Как только вы это сделаете, запустите Python в терминале и введите "импортировать swampy.TurtleWorld". Если вы видите шевроны (>>>) и не видите сообщения об ошибке, можете продолжать уроки.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top