Python Django PDFKIT - [Errno 9] 错误的文件描述符

Python Django PDFKIT - [Errno 9] Bad file descriptor

我使用pdfkit和wkhtmltopdf来生成pdf文档。当我生成第一个 pdf 时,一切都很好。当我快速(在 5 秒内)生成另一个时,我收到错误 [Errno 9] Bad file descriptor。如果我关闭错误(在浏览器中后退)并再次打开,它将创建 pdf。

我的views.py

config = pdfkit.configuration(wkhtmltopdf='C:/wkhtmltopdf/bin/wkhtmltopdf.exe')
pdfgen = pdfkit.from_url(url, printname, configuration=config)
pdf = open(printname, 'rb')

response = HttpResponse(pdf.read())
response['Content-Type'] = 'application/pdf'
response['Content-disposition'] = 'attachment ; filename =' + filename
pdf.close()
return response

可能重要的注意事项:我 运行 这个站点在 IIS8 上,当从命令行 运行ning 时(python manage.py 运行 服务器)错误是不存在。

任何关于如何处理此错误的指南都很好。

When i quickly (within 5 seconds) generate an other

这一点表明您的代码是完美无缺的,问题在于您的浏览器拒绝了 Peter 所建议的 URL。

最有可能的错误原因在于file buffer flush。考虑在适当的地方刷新缓冲区。

由于没有进一步的信息,我会将我的评论转换为答案...

最有可能的问题是,当您尝试快速重新加载(通过 from_url)时,您的 URL 被 Web 服务器拒绝,或者您在访问本地文件时遇到问题试图创造。

您可以通过将 False 作为输出文件名直接写入变量来尝试消除后者 - 例如pdf = pdfkit.from_url('google.com', False)

如果这不能解决问题,您的问题几乎可以肯定是服务器拒绝 URL - 因此您需要查看该服务器上的诊断。