Не удается создать 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)
Кажется, тебе нужно пройти 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, и ошибка исчезнет.