Невозможно добавить фигуру в модуле черепахи Python - нет такой ошибки файла или каталога

1

Я пытаюсь изменить форму черепахи на 8-битный образ изображения. У меня есть изображение, которое я хочу сохранить в том же каталоге, что и мой исходный код (вы можете видеть это с помощью os.getcwd().) Мне интересно, почему я получаю эту ошибку и как ее исправить. Спасибо!

from turtle import Turtle, Screen
import os

print(os.getcwd())


wn = Screen()
wn.bgcolor('lightblue')

spaceship = Turtle()
spaceship.color('red')
newshape = Screen().addshape('8bitlink.png.gif')
spaceship.shape(newshape)
spaceship.penup()

Ошибка выглядит так:

Traceback (most recent call last):
  File "/Users/colind/Desktop/Spaceship Game.py", line 12, in <module>
    newshape = Screen().addshape('8bitlink.png.gif')
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/turtle.py", line 1133, in register_shape
    shape = Shape("image", self._image(name))
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/turtle.py", line 479, in _image
    return TK.PhotoImage(file=filename)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 3542, in __init__
    Image.__init__(self, 'photo', name, cnf, master, **kw)
  File "/Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/tkinter/__init__.py", line 3498, in __init__
    self.tk.call(('image', 'create', imgtype, name,) + options)
_tkinter.TclError: couldn't open "8bitlink.png.gif": no such file or directory
  • 1
    Какую ошибку вы получаете ...
  • 0
    Не могли бы вы опубликовать всю ошибку, а не только последнюю строку
Показать ещё 2 комментария
Теги:
turtle-graphics

1 ответ

0

Одна из проблем заключается в том, что вы не вызываете addshape() правильно:

newshape = Screen().addshape('8bitlink.png.gif')
spaceship.shape(newshape)

Поскольку addshape() ничего не возвращает, он регистрирует форму изображения под именем файла, поэтому вместо этого вы должны сделать что-то вроде:

from turtle import Turtle, Screen

wn = Screen()
wn.bgcolor('lightblue')

wn.addshape('8bitlink.png.gif')

spaceship = Turtle()
spaceship.shape('8bitlink.png.gif')
spaceship.color('red')
spaceship.penup()

# ...

wn.mainloop()

Это работает для меня, когда я храню изображение GIF под названием "8bitlink.png.gif". Вы можете убедить себя и нас, что у вас есть фактическое изображение GIF, запустив команду file Unix:

> file 8bitlink.png.gif
8bitlink.png.gif: GIF image data, version 89a, 24 x 24
>

Вы должны быть похожими, но не одинаковыми.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню