pdfkit [WinError 740] 请求的操作需要提升 python3

问题描述 投票:0回答:3

我想根据给定的 URL 将

HTML
页面转换为 PDF 文件。我尝试过使用
pdfkit
,但它会引发以下错误:

[WinError 740] The requested operation requires elevation.

代码:

import pdfkit
path_wkthmltopdf = "D:\\w.exe"
config = pdfkit.configuration(wkhtmltopdf = path_wkthmltopdf )
pdfkit.from_url("http://www.google.com", 'd:\\out.pdf', configuration=config)

输出错误:

n [42]: import pdfkit
path_wkthmltopdf = "D:\\w.exe"
config = pdfkit.configuration(wkhtmltopdf = path_wkthmltopdf )

pdfkit.from_url("http://www.google.com", 'd:\\out.pdf', configuration=config)
Traceback (most recent call last):

  File "<ipython-input-42-58323936ac63>", line 5, in <module>
    pdfkit.from_url("http://www.google.com", 'd:\\out.pdf', configuration=config)

  File "C:\Users\31081\AppData\Local\conda\conda\envs\ml\lib\site-packages\pdfkit\api.py", line 26, in from_url
    return r.to_pdf(output_path)

  File "C:\Users\31081\AppData\Local\conda\conda\envs\ml\lib\site-packages\pdfkit\pdfkit.py", line 129, in to_pdf
    stderr=subprocess.PIPE)

  File "C:\Users\31081\AppData\Local\conda\conda\envs\ml\lib\site-packages\spyder_kernels\customize\spydercustomize.py", line 143, in __init__
    super(SubprocessPopen, self).__init__(*args, **kwargs)

  File "C:\Users\31081\AppData\Local\conda\conda\envs\ml\lib\subprocess.py", line 729, in __init__
    restore_signals, start_new_session)

  File "C:\Users\31081\AppData\Local\conda\conda\envs\ml\lib\subprocess.py", line 1017, in _execute_child
    startupinfo)

OSError: [WinError 740] The requested operation requires elevation
python-3.x windows pdf pdfkit
3个回答
2
投票

我也遇到了这个问题,我通过运行 .exe 解决了这个问题,运行后它将创建新的目录,进入这个目录然后 bin 目录你会在那里找到一个 exe 文件,例如 C:\Program Files\wkhtmltopdf 中\wkhtmltopdf.exe 因此,将“D:\w.exe”替换为代码中的上述路径即可工作


0
投票

原因

您很可能会因为下载了 Installer 版本但未安装而出现该错误。因此,当配置中的

wkhtmltopdf
指向该可执行文件(需要提升权限)运行代码时,您会收到以下错误:

OSError: [WinError 740] The requested operation requires elevation

解决方案

您可以通过运行该

Installer
版本并选择目标文件夹(假设为 wkhtmltopdf)来安装
C:\Program Files
。您将在
wkhtmltopdf.exe
文件夹中找到需要添加到配置中的
bin
文件。因此,您应该按如下方式使用:

config = pdfkit.configuration(wkhtmltopdf=r'C:/Program Files/wkhtmltopdf/bin/wkhtmltopdf.exe')
pdfkit.from_url('http://google.com', 'out.pdf', configuration=config)

另一个解决方案是下载

7z Archive
版本,解压文件,您也会在
wkhtmltopdf.exe
文件夹下找到
bin


-1
投票

当我没有完成 wkpdftohtml 库的完整安装时,我遇到了这个问题。打开包装后,无需提升即可运行。

© www.soinside.com 2019 - 2024. All rights reserved.