Изображение Tkinter canvas работает в Windows, но не в OSX

#python #image #canvas #tkinter #tk

#python #изображение #холст #tkinter #tk-toolkit

Вопрос:

Несколько новичок, поэтому простите мои ошибки.

Я создал супер простой скрипт tk, который создает холст и отображает на нем изображение. Он работает в Windows, но не в OSX, единственное отличие заключается в пути к файлу.

 from tkinter import *
from PIL import ImageTk, Image
root = Tk()

canv = Canvas(root, width=80, height=80, bg='white')
canv.pack(expand=YES, fill=BOTH)

img = ImageTk.PhotoImage(Image.open(r"C:projectTechArttoolsillustrator_label_browserthumbnailsrachel_vector_lines.png"))  # PIL solution
canv.create_image(20, 20, anchor=NW, image=img)

mainloop()
  

OSX Mojave:

 from tkinter import *
from PIL import ImageTk, Image
root = Tk()

canv = Canvas(root, width=80, height=80, bg=‘white’)
canv.pack(expand=YES, fill=BOTH)

img = ImageTk.PhotoImage(Image.open(“/Users/jonathansundberg/Techart/tools/illustrator_label_browser/thumbnails/rachel_vector_lines.png”))  # PIL solution
canv.create_image(20, 20, anchor=NW, image=img)

mainloop()
  

Что я делаю не так?

Комментарии:

1. Какие сообщения об ошибках вы получили в OSX?

2. Нет, оно работает нормально, но изображение не отображается

Ответ №1:

У меня тоже есть macOS Mojave. Эти три команды могли бы помочь:

 sudo easy_install pip
pip install Pillow
python3.7 -m pip install pillow
  

Я смог открыть файл jpeg с помощью вашего кода и команды python3.7.

Комментарии:

1. Как обстоят дела с файлами png?

2. Да, это работает и с файлами png — я только что протестировал это. Разница заключается не только в пути, но и во всех системах с разными версиями программного обеспечения. Для решения этой проблемы необходимо работать с командной строкой в macOS: python.org/download/mac/tcltk Пакет PIL на macOS имеет множество проблем: google «python для mac»