Не удается создать 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')

14 ответов

Следующее должно работать без изменения переменных среды 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').

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

sudo apt-get install wkhtmltopdf

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

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

IOError: 'No wkhtmltopdf executable found'

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

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

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

Из github

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

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

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

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

import pdfkit
path_wkthmltopdf = b'C:\Program Files\wkhtmltopdf\\bin\wkhtmltopdf.exe'
config = pdfkit.configuration(wkhtmltopdf=path_wkthmltopdf)
pdfkit.from_url("http://google.com", "rajul-url.pdf", configuration=config)
pdfkit.from_file("output.xml","rajul-pdf.pdf", configuration=config)

Блок Above Code у меня работает отлично. Обратите внимание, что файл, который необходимо преобразовать, находится в том же каталоге, где создается файл PDF.

Столкнулся с той же проблемой на Mac. По какой-то причине это сработало после удаления установки pip и переустановки wkhtmltopdf с помощью brew

pip удалить wthtmltopdf

и использовать пиво

варить установить Caskroom/cask/wkhtmltopdf

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

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

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

import pdfkit
pdfkit.from_url("http://google.com", "out.pdf")
def urltopdf(url,pdffile):
    импорт pdfkit
    """
        вход
        - URL: целевой URL
        - pdffile: имя целевого файла pdf
    """
    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, конфигурация = конфигурации)


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

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

Найденный декодер на платформе 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)

[Для Ubuntu/Debian]

первый забег: sudo apt-get update --fix-missing

тогда: sudo apt-get install -y wkhtmltopdf

надеюсь, что это решит вашу проблему.

для Windows Попробуйте использовать полный путь C:\Program Files\wkhtmltopdf\bin\wkhtmltopdf.exe

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

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

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

Если вы добавили путь, но все равно получаете ошибку. Просто перезапустите код vs, и ошибка исчезнет.

Другие вопросы по тегам