鱼C论坛

 找回密码
 立即注册
查看: 1826|回复: 6

[已解决]好像用try except搞定wkhtmltopdf的出错问题了,但why?

[复制链接]
发表于 2023-5-24 10:17:56 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 blackantt 于 2023-5-24 10:19 编辑

用 pdfkit.from_url(link_full, "{}.pdf".format(mainfilename), configuration=config, options=wkhtmltopdf_options), win/linux 下前几个pdf生成后,就一直出类似以下的各种告警并退出

raise IOError('wkhtmltopdf reported an error:\n' + stderr)
OSError: wkhtmltopdf reported an error:
Exit with code 1 due to network error: ContentNotFoundError

但加入 try except后,似乎正常了。  不解的是,照理说try后部分出错,当前的pdf就不会产生吧。 但好像当前的pdf也生成了,并且没有问题。 why? 是我看错了?
try:
             pdfkit.from_url(link_full, "{}.pdf".format(mainfilename), configuration=config, options=wkhtmltopdf_options)

         except:
             print('-------------------sleep----------------------')
             time.sleep(5)
最佳答案
2023-5-24 10:27:09
这是一个很好的问题。在理解这个问题之前,让我们先理解一下 try-except 在Python中的工作方式。

在Python中, try-except 语句用于处理程序执行中可能出现的异常。如果在 try 块中的代码引发了异常,那么 try 块中剩下的代码将被跳过,然后程序会回到 except 块并执行其中的代码。

在你的代码中, pdfkit.from_url() 这个函数可能会引发一个异常,这可能是因为网络问题、链接无效或其他一些问题。当这个异常被引发时,程序会跳过剩下的代码,并跳到 except 块中。在你的 except 块中,程序会打印一条消息并等待5秒。

然而,这并不意味着PDF没有被创建。当 pdfkit.from_url() 函数调用时,它可能已经开始了PDF的创建过程。也就是说,尽管在一些情况下可能会引发异常,但这并不阻止PDF的创建。

请注意,这并不是一个理想的解决方案,因为它并没有真正解决问题。只是当异常发生时,程序会等待5秒,然后继续执行。如果可能的话,建议你进一步调查这个问题,看看能否找到更好的解决方案。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-5-24 10:27:09 | 显示全部楼层    本楼为最佳答案   
这是一个很好的问题。在理解这个问题之前,让我们先理解一下 try-except 在Python中的工作方式。

在Python中, try-except 语句用于处理程序执行中可能出现的异常。如果在 try 块中的代码引发了异常,那么 try 块中剩下的代码将被跳过,然后程序会回到 except 块并执行其中的代码。

在你的代码中, pdfkit.from_url() 这个函数可能会引发一个异常,这可能是因为网络问题、链接无效或其他一些问题。当这个异常被引发时,程序会跳过剩下的代码,并跳到 except 块中。在你的 except 块中,程序会打印一条消息并等待5秒。

然而,这并不意味着PDF没有被创建。当 pdfkit.from_url() 函数调用时,它可能已经开始了PDF的创建过程。也就是说,尽管在一些情况下可能会引发异常,但这并不阻止PDF的创建。

请注意,这并不是一个理想的解决方案,因为它并没有真正解决问题。只是当异常发生时,程序会等待5秒,然后继续执行。如果可能的话,建议你进一步调查这个问题,看看能否找到更好的解决方案。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-24 10:28:31 | 显示全部楼层
老哥,前几天这个试了没?

https://fishc.com.cn/forum.php?m ... 614&pid=6240944

好不容易手动搞出来的,你懂吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-24 10:36:56 | 显示全部楼层
isdkz 发表于 2023-5-24 10:28
老哥,前几天这个试了没?

https://fishc.com.cn/forum.php?mod=redirect&goto=findpost&ptid=228614&pi ...

谢谢,当然没忘。  等我的pdf生完后。接着就回头搞。这两天颈椎病犯了。不好意思,没来得及测
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-5-24 10:38:42 | 显示全部楼层
blackantt 发表于 2023-5-24 10:36
谢谢,当然没忘。  等我的pdf生完后。接着就回头搞。这两天颈椎病犯了。不好意思,没来得及测

没事,还是要多保重身体呀,我碰电脑都不敢让脖子劳累,显示器我都宁愿垫高一点
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-24 10:40:57 | 显示全部楼层
isdkz 发表于 2023-5-24 10:38
没事,还是要多保重身体呀,我碰电脑都不敢让脖子劳累,显示器我都宁愿垫高一点

ok
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-5-25 08:31:15 | 显示全部楼层
isdkz 发表于 2023-5-24 10:27
这是一个很好的问题。在理解这个问题之前,让我们先理解一下 try-except 在Python中的工作方式。

在Pyth ...

原因找到了, wkhtml2pdf 找不到css里指定的字体。 要在css里指定字体的绝对位置。  :)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-23 01:41

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表