मैं उबंटू पर पायथन 3 चलाने की कोशिश कर रहा हूं, लेकिन मैं कुछ अजीब त्रुटियों में भाग रहा हूं। स्क्रिप्ट स्पष्ट रूप से उस फ़ाइल का पता नहीं लगा सकती है जिसकी मैंने पुष्टि की है।

यहाँ त्रुटि है

Traceback (most recent call last):
  File "script.py", line 52, in <module>
    insert_text("For kunde",dir + "/" + project_num + "_signature_customer.jpg", 0)
  File "script.py", line 46, in insert_text
    insert_text(search_term, img_path, (i + 50))
  File "script.py", line 46, in insert_text
    insert_text(search_term, img_path, (i + 50))
  File "script.py", line 40, in insert_text
    img = openpyxl.drawing.image.Image(img_path)
  File "/usr/local/lib/python3.5/dist-packages/openpyxl/drawing/image.py", line 34, in __init__
    image = _import_image(img)
  File "/usr/local/lib/python3.5/dist-packages/openpyxl/drawing/image.py", line 18, in _import_image
    img = PILImage.open(img)
  File "/usr/lib/python3/dist-packages/PIL/Image.py", line 2295, in open
    % (filename if filename else fp))
OSError: cannot identify image file '/var/www/my_ip/uploads/333333_signature_customer.jpg'

और यहाँ स्क्रिप्ट के कुछ अंश हैं

project_num = "333333"
dir = os.path.dirname(os.path.realpath(__file__))

# This function places the image found at img_path 2 cells above where the search_term is found.
def insert_text(search_term, img_path, i):

  if i > 400:
    return None

  found = False

  for x in range(1 + i,51 + i):
    for y in range(1,101):
      if isinstance(ws.cell(row=x, column=y).value,str):
        if  ws.cell(row=x, column=y).value == search_term:
          img = openpyxl.drawing.image.Image(img_path)
          img.anchor = ws.cell(row=(x-2),column=y).coordinate
          ws.add_image(img)
          found = True

  if not found:
    insert_text(search_term, img_path, (i + 50))

# if os.path.isfile(dir + "/" + project_num + "_signature_ikm.jpg"):
  # insert_text("redacted Testing AS",dir + "/" + project_num + "_signature_ikm.jpg", 0)
if os.path.isfile(dir + "/" + project_num + "_signature_customer.jpg"):
  # insert_text("For kunde","signature_customer.jpg", 0)
  insert_text("For kunde",dir + "/" + project_num + "_signature_customer.jpg", 0)

यहाँ मैं उस फ़ोल्डर में LS कमांड का उपयोग कर रहा हूँ जहाँ छवि स्थित है

john_doe@1e19udt0shu6:/var/www/my_ip/uploads$ ls
333333.xlsx                    333333_signed.xlsx  node_modules       script.py       script_backup.py        signature_redacted.jpg
333333_signature_customer.jpg  redacted2.png            package-lock.json  script.py.save  signature_customer.jpg  test.py

फ़ाइल स्पष्ट रूप से है, लेकिन Python3 असहमत प्रतीत होता है। क्यों के लिए कोई विचार? इससे पहले कि मैं insert_text() को कॉल करूं, मैं यह भी पुष्टि करता हूं कि फ़ाइल मौजूद है।

1
Asgeir Bjelland 10 जुलाई 2019, 12:57

1 उत्तर

सबसे बढ़िया उत्तर

फाइल वहीं है। यह सिर्फ इतना है कि जनहित याचिका छवि फ़ाइल के प्रारूप की पहचान नहीं कर सकती है, इसलिए वह फ़ाइल को लोड नहीं कर सकती है। फ़ाइल जेपीईजी या कोई अन्य प्रारूप नहीं है जिसे जनहित याचिका लोड कर सकती है।

Daud

file 333333_signature_customer.jpg

या उसके सिर को देखो

xxd 333333_signature_customer.jpg | head

यह पहचानने के लिए कि यह वास्तव में किस प्रकार की फाइल है। (xxd, vim पैकेज में है)

2
Dan D. 10 जुलाई 2019, 13:09