2014-12-28 2 views
6

Я попытался установить pdfkit Python API на моем компьютере с Windows 8. Я получаю проблемы, связанные с путём.Невозможно создать pdf-файл с использованием python Ошибка PDFKIT: «Нет найденного исполняемого файла wkhtmltopdf:«

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 в машине для окон? Как решить эту ошибку.

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

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

ответ

4

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

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

, наконец, я нашел out.pdf.

8

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

6

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

sudo apt-get install wkhtmltopdf 

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

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

+0

Вы также должны добавить его в PATH на Windows в соответствии с ссылкой на pdfkit wiki здесь https://github.com/JazzCore/python-pdfkit/wiki/Installing-wkhtmltopdf – Max

0

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

 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) 
-1

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

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

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

1

Вы должны установить

pdfkit.from_url ('http://google.com', 'out.pdf', конфигурация = конфигурации)

0

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) 

From github

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

0
 
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') 

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