img2pdf - не выходит собрать пдф из png

Тема в разделе "Perl, Python, Ruby", создана пользователем zek24, 21 май 2020.

XEvil 4.0 Релиз Состоялся!
  1. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    810
    Симпатии:
    297
    Привет, есть папка с png и желание собрать pdf
    Код отсюда
    PHP:
    import img2pdf
    from PIL import Image
    import os


    dirname 
    "../img"
    with open("name.pdf","wb") as f:
        
    imgs = []
        for 
    fname in os.listdir(dirname):
            if 
    not fname.endswith(".png"):
                continue
            
    path os.path.join(dirnamefname)
            if 
    os.path.isdir(path):
                continue
            
    imgs.append(path)
        
    f.write(img2pdf.convert(imgs))
    При выполнение код упорно второй день выдает ошибку
    AttributeError: partially initialized module 'img2pdf' has no attribute 'convert' (most likely due to a circular import)

    ХЕЛП!
     
    Последнее редактирование: 21 май 2020
  2. Sorcus

    Sorcus Sorcus. A New Beginning.

    Moderator
    Регистр.:
    10 июл 2011
    Сообщения:
    494
    Симпатии:
    854
    А что за картинки ты пытаешься сконвертировать?
    Потому что у меня твой код запустился без ошибок и сформировал pdf-ку из скриншотов.
     
  3. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    810
    Симпатии:
    297
    png файлы
    проблема в том, что img2pdf не "видит" свойства convert
    Хотя все версии свежие.
    Пишу на PyCharm

    Недавно познакомился с питоном, видно что-то еще не понимаю.
     
  4. Sorcus

    Sorcus Sorcus. A New Beginning.

    Moderator
    Регистр.:
    10 июл 2011
    Сообщения:
    494
    Симпатии:
    854
    Код:
    laptop% cat test.py
    import img2pdf
    import os
    
    print(img2pdf.convert)
    
    laptop% python test.py
    <function convert at 0x7fcb980f19d0>
    
    Усё работает. Ставил img2pdf через репозиторий арчика.
    Код:
    laptop% pacman -Si img2pdf
    Name            : img2pdf
    Version         : 0.3.6-1
    laptop% python --version
    Python 3.8.2
    
    А у тебя кстати нету случаем в той же директории других файлов, которые имеют такое же название, как этот модуль?
     
    Последнее редактирование: 21 май 2020
    zek24 нравится это.
  5. zek24

    zek24

    Moderator
    Регистр.:
    14 ноя 2009
    Сообщения:
    810
    Симпатии:
    297
    да, сам файл с кодом назвал по имени img2pdf :facepalm:
    сейчас другая ошибка, но гугл, думаю, поможет
    WARNING:root:Image contains transparency which cannot be retained in PDF.
    WARNING:root:img2pdf will not perform a lossy operation.
    WARNING:root:You can remove the alpha channel using imagemagick:
    WARNING:root: $ convert input.png -background white -alpha remove -alpha off output.png
     
    Sorcus нравится это.
  6. Sorcus

    Sorcus Sorcus. A New Beginning.

    Moderator
    Регистр.:
    10 июл 2011
    Сообщения:
    494
    Симпатии:
    854
    А чего тут гуглить? Оно тебе прямым текстом сообщает, что нужно удалить альфа канал.
    И сделать это можно с помощью imagemagick. Пример команды на последней строке.
     
    Renny и zek24 нравится это.