Python pdf2image不适用于gunicorn/烧瓶

Python pdf2image不适用于gunicorn/烧瓶,python,flask,gunicorn,poppler,Python,Flask,Gunicorn,Poppler,在过去的一天里,我一直在尝试将pdf2image合并到我的flask Web服务中。 问题是,无论我做什么,我仍然会收到“poppler是否已安装且在路径中?”错误消息。 我写了一个小程序,它只打印pdf文件中的页数。在装有venv的烧瓶内部和外部,这都能很好地工作。如果我试图从flask文件中执行此操作,就会得到错误。我甚至尝试在测试代码中调用相同的函数,但都没有用。我真的不知道该怎么办了,所以非常感谢您的帮助 注:我真的不知道这篇文章应该包括什么来源,所以请尽管问,我会提供的。我有你描述的症

在过去的一天里,我一直在尝试将pdf2image合并到我的flask Web服务中。 问题是,无论我做什么,我仍然会收到“poppler是否已安装且在路径中?”错误消息。 我写了一个小程序,它只打印pdf文件中的页数。在装有venv的烧瓶内部和外部,这都能很好地工作。如果我试图从flask文件中执行此操作,就会得到错误。我甚至尝试在测试代码中调用相同的函数,但都没有用。我真的不知道该怎么办了,所以非常感谢您的帮助


注:我真的不知道这篇文章应该包括什么来源,所以请尽管问,我会提供的。

我有你描述的症状。对我来说,问题是:

在systemd用来启动gunicorn的.service文件中,我有一个不完整的path变量。解决方案是将路径添加到pdftoppm和pdftocairo,在我的例子中(在Debian 10上)是/usr/bin 因此,解决方案是.service文件包括

[Service]
...
Environment="PATH=<your_app_path>/venv/bin:/usr/bin"
[服务]
...
Environment=“PATH=/venv/bin:/usr/bin”

注意:这个问题及其解决方案因此比pdf2image问题更广泛,但它似乎经常出现在pdf2image中。。。假设这是真的,我希望你的问题和我的回答都是相关的。

我也有同样的问题(pdf2image在本地使用Flask,也在服务器上使用命令行python3,但在gunicorn/Flask下的“PATH”消息失败)。将在几个小时内调查此事。。。如果你能解决它,请写一个答案!应该这样做。如果'/usr/bin'不在os.environ:os.environ['PATH']='/usr/bin'中,我通过执行
解决了这个问题。感谢您接受我的回复并确认您有类似的工作解决方案。然而,我很惊讶:
os.environ['PATH']='/usr/bin'
似乎并没有用缺少的路径来补充PATH变量,而是完全替换它。如果path变量中除了/usr/bin之外还有什么有用的东西,我怀疑这可能会导致问题。如果在您想要访问poppler的时候,您不需要/usr/bin之外的东西,那么它将起作用,否则,这可能会将一个问题替换为另一个问题。