У меня проблема с Python Image и ImageTk из модуля PIL , поскольку я продолжаю получать ошибку No module named PIL в моей конфигурации запуска PyCharm (Python 2.7). Я знаю, что эта проблема упоминалась еще в нескольких вопросах, но мне не удалось ее решить. Так что я надеюсь найти здесь решение.
Я создал виртуальную среду conda в PyCharm и успешно установил там подушку и подушку. См. Снимок экрана моего окна интерпретатора проекта здесь .
Кроме того, когда я набираю в консоли import PIL
или import Image
, ошибки не возникает. Однако когда я запускаю сценарий, который импортирует PIL, возникает ошибка no module с именем PIL (то же самое для import Image
). Вот скриншот конфигурации запуска PyCharm моего скрипта .
Еще меня сводит с ума то, что когда я запускаю скрипт Python вне PyCharm, используя обычный Windows 10 консоли, ошибка импорта не возникает, но изображение, которое я хотел бы отобразить в пользовательском интерфейсе, отображается неправильно. Вот снимок экрана, показывающий результат приложения Tkinter слева, а изображение, которое должно отображаться, показано справа . Поэтому я ожидаю, что изображение справа появится в окне Tkinter, где в настоящее время отображаются серые полосы. Ниже приведен код, который я использовал для создания этого приложения:
from Tkinter import *
import Image
import ImageTk
class Application(Frame):
def __init__(self, master=None):
Frame.__init__(self, master)
self.pack()
self.createWidgets()
def createWidgets(self):
mainframe = self
mainframe.grid(column=0, row=0, sticky=(N, W, E, S))
mainframe.columnconfigure(0, weight=1)
mainframe.rowconfigure(0, weight=1)
img = Image.open("N:/temp/test.png")
imgTk = ImageTk.PhotoImage(img)
imgLabel = Label(mainframe, image=imgTk)
imgLabel.image = imgTk
imgLabel.pack(side="bottom", expand="no")
imgLabel.grid(column=1, row=1, sticky=W, padx=(10, 10), pady=(6, 0))
def on_closing():
root.destroy()
root = Tk()
root.title("Test")
root.protocol("WM_DELETE_WINDOW", on_closing)
app = Application(master=root)
app.mainloop()
Итак, если у кого-то будет предложение, как устранить ошибку импорта и как правильно отображать изображение в приложении Tkinter, я бы был очень признателен!