รูปภาพคลาสไม่มีแอตทริบิวต์ 'เปิด' [ซ้ำกัน]

รายการซ้ำที่เป็นไปได้:
img = Image.open(fp) AttributeError: คลาสอิมเมจไม่มีแอตทริบิวต์ 'open'

ดังนั้นฉันจึงพยายามดูภาพใน python ด้วย tkinter ฉันติดตั้ง PIL และฉันกำลังพยายามเปิดรูปภาพ แต่ฉันได้รับข้อผิดพลาดของแอตทริบิวต์ที่แจ้งว่า "คลาสอิมเมจไม่มีแอตทริบิวต์ 'เปิด'

from __future__ import division
from PIL import Image
from Tkinter import *
import random

img = Image.open("majestic creature.jpeg").convert("RGB")

นี่ไม่ใช่โค้ดทั้งหมดที่ฉันมี แต่นี่เป็นส่วนที่โปรแกรมดูเหมือนจะมีปัญหา


person Clockwork    schedule 11.11.2012    source แหล่งที่มา
comment
ฉันเคยเห็นโพสต์นั้นแล้ว ฉันลองวิธีแก้ปัญหาแล้ว และมันทำให้ฉันมีข้อผิดพลาดอื่น: IOError: ไม่สามารถระบุไฟล์รูปภาพได้   -  person Clockwork    schedule 12.11.2012
comment
แก้ไขความคิดเห็นเพื่อรวมข้อผิดพลาด กด Enter ก่อนเวลาอันควร   -  person Clockwork    schedule 12.11.2012
comment
คุณแน่ใจหรือว่าไม่ใช่ majestic creature.jpg (ไม่ใช่ jpeg) หรือพิมพ์ผิดในชื่อไฟล์   -  person tckmn    schedule 12.11.2012
comment
ไม่ ฉันเพิ่งตรวจสอบ มันเป็น jpg ฉันลองเปลี่ยนเป็น jpeg และมันทำให้ฉันมีข้อผิดพลาดอื่นโดยบอกว่า: IOError: [Errno 2] No such file or directory: 'majestic Creature.jpeg'   -  person Clockwork    schedule 12.11.2012
comment
เดี๋ยวก่อน ในรหัสของคุณคือ jpeg คุณบอกในความคิดเห็นว่าชื่อไฟล์ลงท้ายด้วย jpg นั่นเป็นปัญหาเหรอ? นอกจากนี้ยังสะกดว่าคู่บารมี นั่นเป็นการพิมพ์ผิดหรือเป็นชื่อไฟล์นั้น?   -  person tckmn    schedule 12.11.2012
comment
ดังนั้นจึงมีความสับสนในประเภทไฟล์ แต่ฉันเปลี่ยนเพื่อให้แน่ใจว่าสอดคล้องกันและยังคงทำให้ฉันมีข้อผิดพลาด: IOError: ไม่สามารถระบุไฟล์รูปภาพได้   -  person Clockwork    schedule 12.11.2012
comment
เอ่อ... ขออภัย ฉันไม่มีเบาะแสเกี่ยวกับเรื่องนี้ตอนนี้   -  person tckmn    schedule 12.11.2012
comment
คุณรู้ไหมว่ามีทรัพยากรใดบ้างที่คุณสามารถเสนอเพื่อช่วยฉันได้ มันเป็นงานที่ได้รับมอบหมาย และฉันพยายามหาข้อผิดพลาดนี้มาหลายชั่วโมงโดยไม่มีความคืบหน้า   -  person Clockwork    schedule 12.11.2012
comment
นี่อาจช่วยได้นิดหน่อย หากคุณแบ่งคำสั่งออกเป็นสองบรรทัด (บรรทัดแรกเปิดรูปภาพ บรรทัดที่สองแปลงเป็น rgb) การค้นหาปัญหาของคุณอาจง่ายกว่า ยังจับยากเล็กน้อย แต่คุณอาจต้องการหลีกเลี่ยงการใช้ชื่อไฟล์ที่มีช่องว่างอยู่   -  person Anake    schedule 12.11.2012
comment
หากคุณรู้เกี่ยวกับคำถามที่เชื่อมโยงซึ่งครอบคลุมปัญหาที่คุณถามในคำถามนั้นทุกประการ แล้วเหตุใดคุณจึงถามคำถามอื่นในหัวข้อเดียวกันแม้ว่าคุณจะมีข้อผิดพลาดที่แตกต่างไปจากเดิมอย่างสิ้นเชิง   -  person poke    schedule 12.11.2012
comment
โปรด วางการติดตามย้อนกลับของคุณ อย่าถอดเสียง   -  person Matthew Trevor    schedule 12.11.2012


คำตอบ (1)


จากรูปลักษณ์ของสิ่งที่คุณพูด นั่นคือ This is not all of the code
คุณหรือการนำเข้าอื่น ๆ ได้ประกาศตัวแปร / คลาสบางตัวที่เรียกว่า Image และสิ่งนี้ได้เขียนทับคลาส Image ที่นำเข้าโดย PIL

หากต้องการใช้คลาส PIL Image โดยเฉพาะให้ใช้:

img = PIL.Image.open("majestic creature.jpeg").convert("RGB")
person Serdalis    schedule 11.11.2012
comment
ฉันไม่รู้ว่าทำไม แต่ถ้าฉันนำเข้า from Tkinter import* ก่อนและหลัง from PIL import Image มันก็ใช้งานได้ - person Marcelo Gazzola; 28.01.2021
comment
อาจเป็นเพราะ TKinter มีคลาสรูปภาพซึ่งการนำเข้า PIL จะแทนที่เมื่ออยู่หลัง from Tkinter import * ฉันมักจะสนับสนุนให้ส่งออกอย่างชัดเจนด้วยเหตุผลนี้ epydoc.sourceforge.net/stdlib/Tkinter-module.html - person Serdalis; 29.01.2021