首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用pdf2image时将pyinstaller生成的exe包括在内?

如何在使用pdf2image时将pyinstaller生成的exe包括在内?
EN

Stack Overflow用户
提问于 2021-02-21 15:18:22
回答 1查看 1.6K关注 0票数 2

我制作了一个简单的脚本,将当前目录中的pdfs转换为图像。我想把它变成一个独立的.exe文件,这样没有在他的电脑上安装python的人可以使用它。

问题是pyinstaller未能将poppler包含到exe文件中,因此pdf2image不能正确运行,生成的pdf2image也会失败。以下是错误消息:

pdf2image.exceptions.PDFInfoNotInstalledError:无法获得页面计数。是否已安装并已安装PATH? 32024未能执行脚本bulk_pdf2img

我目前正在开发conda环境,其中安装了pyinstallerpdf2imageconda install命令中的poppler。当我从提示符执行python脚本时,它工作得很好,但是当脚本被转换为exe时,它会引发上述错误。

我尝试了以下方法:

添加--add-data 选项

我尝试通过这样做来添加poppler数据。

代码语言:javascript
复制
$ pyinstaller --onedir --add-data="C:/Users/myusername/anaconda3/pkgs/poppler-0.89.0-h20e2fe3_4/Library/include/poppler/*;./poppler" bulk_pdf2img.py

不起作用。

添加additional-hooks-dir 选项

我添加了projectdirectory/hooks/hook-pdf2image.py

代码语言:javascript
复制
from PyInstaller.utils.hooks import collect_all

data, binaries, hiddenimports = collect_all('pdf2image')

在里面跑

代码语言:javascript
复制
$ pyinstaller --onefile --additional-hooks-dir=hooks bulk_pdf2img.py

也不管用。

我搜索了几乎所有的堆栈溢出问题,这些问题显然与我的问题完全相同,但却找不到任何有效的解决方案。我现在该怎么做?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-22 16:00:27

来自文档

然后,您必须将bin/文件夹添加到PATH中,或者在convert_from_path中使用poppler_path = r"C:\path\to\poppler-xx\bin"作为参数。

现在,如果您使用--onefile选项pyinstaller,它将在执行过程中将所有文件解压到一个临时文件夹中,您可能需要查看这个回答和相关的帖子,以获得正确的路径。

您可以执行以下任一操作

  • 在开始时执行此操作,将popplerpoppler文件夹添加到PATH。 os.environ"PATH"+=os.pathsep+os.path.join('path/to/poppler','bin')
  • pdf2image.convert_from_path('path/to/pdf',poppler_path=r“path\to\\poppler”)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66303806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档