vim python окно черепахи - PullRequest
0 голосов
/ 13 марта 2019

Я на Mac с macOS Mojave v. 10.14.3. Я пользуюсь указом профессора. Я изучаю Python как часть класса Unix. Мои первые строки в vim:

import turtle             # Allows us to use turtles
wn = turtle.Screen()      # Creates a playground for turtles
alex = turtle.Turtle()    # Create a turtle, assign to alex

alex.forward(50)          # Tell alex to move forward by 50 units
alex.left(90)             # Tell alex to turn by 90 degrees
alex.forward(30)          # Complete the second side of a rectangle

wn.mainloop()             # Wait for user to close window

Эти строки скопированы из: Как думать, как ученый: учимся на Python 3

делает w | ! python% в командной строке выдает:

окно появляется и сразу исчезает!

с:

Traceback (most recent call last):
  File "turtle", line 2, in <module>
    wn = turtle.Screen()      # Creates a playground for turtles
  File "/usr/lib/python2.7/lib-tk/turtle.py", line 3553, in Screen
    Turtle._screen = _Screen()
  File "/usr/lib/python2.7/lib-tk/turtle.py", line 3569, in __init__
    _Screen._root = self._root = _Root()
  File "/usr/lib/python2.7/lib-tk/turtle.py", line 458, in __init__
    TK.Tk.__init__(self)
  File "/usr/lib/python2.7/lib-tk/Tkinter.py", line 1823, in __init__
    self.tk = _tkinter.create(screenName, baseName, className, interactive, wantobjects, useTk, sync, use)
_tkinter.TclError: no display name and no $DISPLAY environment variable

Я попробовал то же самое, используя ssh для моего RPi (что мы используем для изучения ядра), и получил:

окно появляется и сразу исчезает; как указано выше. Я не копировал ответ оболочки; Я хотел попробовать следующее.

Затем я попытался войти в RPi с полной регалией «windows» после завершения работы, попробовал тот же сценарий и ту же запись командной строки и получил:

Та же самая проблема с окном с добавлением того, что, казалось, рисовало на окне перед исчезновением Далее:

Traceback (most recent call):
   File "turtle", line 9, in <module>
     wn.mainloop()        # wait for user to close window
AttributeError: '_screen' object has no attribute 'mainloop'

Надеюсь, я еще не до конца.
Я не увижу профессора еще 2 недели, а может и дольше, потому что мне предстоит операция на плече.

1 Ответ

1 голос
/ 14 марта 2019

Даже сегодня Apple Mac OS X по умолчанию поддерживает несколько версий Python 2 (вызывается как python в командной строке) и не содержит версий Python 3. Вам следует установить собственный Python 3 (обычно вызывается как python3). в командной строке.)

Вы также можете сделать этот код невосприимчивым к разнице:

import turtle  # Allows us to use turtles

wn = turtle.Screen()  # Creates a playground for turtles
alex = turtle.Turtle()  # Create a turtle, assign to alex

alex.forward(50)  # Tell alex to move forward by 50 units
alex.left(90)  # Tell alex to turn by 90 degrees
alex.forward(30)  # Complete the second side of a rectangle

wn.exitonclick()  # Wait for user to close (or click on) window

Вышеуказанное должно работать одинаково на любой основной версии Python.

...