Невозможно создать pdf с помощью python Ошибка PDFKIT: "Нет исполняемого файла wkhtmltopdf:

Я попробовал установить pdfkit Python API на моем компьютере с Windows 8. Я получаю проблемы, связанные с пути.

Traceback (most recent call last):
  File "C:\Python27\pdfcre", line 13, in <module>
    pdfkit.from_url('http://google.com', 'out.pdf')
  File "C:\Python27\lib\site-packages\pdfkit\api.py", line 22, in from_url
    configuration=configuration)
  File "C:\Python27\lib\site-packages\pdfkit\pdfkit.py", line 38, in __init__
    self.configuration = (Configuration() if configuration is None
  File "C:\Python27\lib\site-packages\pdfkit\configuration.py", line 27, in __init__
    'https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf' % self.wkhtmltopdf)
IOError: No wkhtmltopdf executable found: ""
If this file exists please check that this process can read it. Otherwise please install wkhtmltopdf - https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf

Кто-нибудь установил Python PDFKIt на машине Windows? Как устранить эту ошибку.

Мой пример кода:

import pdfkit
import os
config = pdfkit.configuration(wkhtmltopdf='C:\\Python27\\wkhtmltopdf\bin\\wkhtmltopdf.exe')
pdfkit.from_url('http://google.com', 'out.pdf')

Ответ 1

Следующее должно работать без изменения переменных среды Windows:

import pdfkit
path_wkthmltopdf = r'C:\Python27\wkhtmltopdf\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
pdfkit.from_url("http://google.com", "out.pdf", configuration=config)

Предполагая, что путь, конечно, правильный (например, в моем случае это r'C:\Program Files (x86)\wkhtmltopdf\bin\wkhtmltopdf.exe ').

Ответ 2

Пожалуйста, установите wkhtmltopdf, используя

sudo apt install -y wkhtmltopdf

для Windows Machine установите его по ссылке ниже, http://wkhtmltopdf.org/downloads.html

и вам нужно добавить путь wkhtmltopdf в переменные окружения

Ответ 3

IOError: 'No wkhtmltopdf executable found'

Убедитесь, что у вас есть wkhtmltopdf в вашем $ PATH или настроено через пользовательскую конфигурацию. where wkhtmltopdf в Windows или which wkhtmltopdf в Linux должен возвращать фактический путь к двоичному файлу.

Добавление этой строки конфигурации работало для меня:

config = pdfkit.configuration(wkhtmltopdf="C:\\Program Files\\wkhtmltopdf\\bin\\wkhtmltopdf.exe")
pdfkit.from_string(html, 'MyPDF.pdf', configuration=config)

Из github

Кажется, вам нужно передать configuration=config качестве аргумента.

Ответ 4

Я изучаю python сегодня, и я встретил ту же проблему, в последнее время я устанавливаю переменные среды windows, и все в порядке.
Я добавляю путь установки wkhtml к пути, например: "D:\developAssistTools\wkhtmltopdf\bin;" это мой путь установки wkhtml, и я добавляю его в путь, все в порядке.

import pdfkit
pdfkit.from_url("http://google.com", "out.pdf")

Наконец, я нахожу out.pdf.

Ответ 5

Вам нужно установить

pdfkit.from_url ('http://google.com', 'out.pdf', configuration = config)

Ответ 6

Найдено, что декодирование на платформе Windows должно быть двоичной строкой, попробуйте:

        path_wkthmltopdf = b'C:\Program Files\wkhtmltopdf\\bin\wkhtmltopdf.exe'
        config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
        pdfkit.from_url(url=urlpath, output_path=pdffilepath,configuration=config)

Ответ 7

def urltopdf(url,pdffile):
    import pdfkit
    '''
        input
        - url : target url
        - pdffile : target pdf file name
    '''
    path_wkthmltopdf = 'D:\\Program Files (x86)\\wkhtmltopdf\\bin\\wkhtmltopdf.exe'
    config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
    #pdfkit.from_url(url=urlpath, output_path=pdffilepath,configuration=config)
    pdfkit.from_url(url,pdffile,configuration=config)


urltopdf('http://www.google.com','pdf/google.pdf')

очень хорошее решение! спасибо всем!

Ответ 8

Когда я попробовал все вышеперечисленные методы, я столкнулся с ошибкой разрешения, так как у меня нет прав администратора на моей рабочей станции. Если это так и для вас, убедитесь, что при установке wkhtmltopdf.exe. Папка назначения для установки находится в папке python site-packages или добавьте каталог в sys.path. Обычно он устанавливается в папке Program Files. Я изменил каталог установки, и это работает для меня:

import pdfkit
pdfkit.from_url("http://google.com", "out.pdf")

Ответ 9

Не нужно писать wkhtmltopdf путь в код. Просто определите для него переменную окружения, и она работает.

import pdfkit
pdfkit.from_url('http://google.com', 'out.pdf')

Для меня этот код работает.