【问题标题】:Unable to import pdftotext after installing with conda and poppler, Windows 10使用 conda 和 poppler、Windows 10 安装后无法导入 pdftotext
【发布时间】:2023-11-07 19:37:01
【问题描述】:

我正在尝试使用 pdftotext,但它不会导入。

我在一台工作笔记本电脑 Lenovo IdeaPad S340 上运行 Windows 10(64 位)。

按照herehere 的指示(非常有帮助),我:

  1. 已安装 Microsoft Visual C++ 构建工具。
  2. 已安装 Anaconda。
  3. 获得了最新版本的 Anaconda 并对其进行了更新,对每个步骤使用单独的 Anaconda3 命令。我不记得这些命令了,也没有再找到它们。
  4. 更新了 Microsoft Visual 14。
  5. 使用 conda 通过 Anaconda3 命令安装 poppler:conda install -c conda-forge poppler
  6. 使用 pip 通过 Anaconda3 命令安装 pdftotext:pip install pdftotext

之后:

这发生在 Python 3.8(32 位)命令提示符中:

>>> import pdftotext
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pdftotext'
>>>

这发生在 IDLE 的 Python 3.75 Shell(64 位)中:

>>> import pdftotext
Traceback (most recent call last):
  File "<pyshell#0>", line 1, in <module>
    import pdftotext
ModuleNotFoundError: No module named 'pdftotext'
>>> 

这发生在 Anaconda3 命令提示符中:

import pdftotext
'import' is not recognized as an internal or external command,
operable program or batch file.

这也发生在 Anaconda3 命令提示符中:

pip install pdftotext
Requirement already satisfied: pdftotext in c:\programdata\anaconda3\lib\site-packages (2.1.4)

这是否意味着它只能在 Python 2 中运行?我怎么会事先检查呢?如果它仅在 Python 2 上运行,您能否推荐一个 Python 3 包/模块/库(有什么区别,顺便说一句?)将 PDF 读入纯文本文件?

感谢您的帮助!

更新:

我在同一台机器和操作系统上使用了一个新用户(另一个用户的名称中有一个空格,所以它的文件路径有一个空格,这可能会导致问题)。我遇到了同样的问题。

我有 Python 3.7.6 和 3.8.1。通过 Anaconda3 提示符 python -V 检查版本时会显示 Python 3.7.6(使用 conda info 时为 3.7.6.final.0)。

我也有:

  • Anaconda 版本“自定义”,构建 py37_1。
  • conda 4.8.2,py37_0,conda-forge 频道。
  • poppler 0.84.0,h1affe6b_0,conda-forge。
  • pdftotext 2.1.4,pypi_0,pypi。

我在这里找到了 Python:C:\Program Files (x86)\Microsoft Visual Studio\Shared\Python37_64。

我用眼睛搜索了所有程序文件、用户文件和 Anaconda Navigator,然后在整个 C 盘中搜索“pdftotext”,但没有找到任何关于 pdftotext 的信息。

尝试从 IDLE 的 Python 3.7.6 shell 也不起作用。

更新:

我想通了,有点。 pdftotext 不能用作 Python 导入,因为 example code in PyPI 使用它。但是,它确实可以作为command line tool that is part of Xpdf 工作,在这些步骤之后无需额外安装。

我在 Anaconda3 PowerShell 命令提示符中使用了该命令:

pdftotext C:\filepath\file.pdf

然后它创建了一个同名的文本文件并将其保存在同一文件夹中。我在上面链接的 Xpdf 页面上列出的命令还有其他选项(例如设置文件名)。

Buuuut,这不是一个令人满意的解决方案。我可以通过一个额外的步骤来处理我当前的用例任务,但我仍然无法从 Python 程序中调用 pdftotext。

更新:

如果您使用 Anaconda 和 conda 安装 pdftotext,那么导入它似乎只有在您从 Anaconda3 shell 中的 Python 解释器中运行它时才有效。

所以,我必须先在 Anaconda3 PowerShell 中切换到 Python 解释器模式:python

然后,我可以毫无错误地导入 pdftotext:import pdftotext

看起来像这样:

(user)> python
Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pdftotext
>>> 

【问题讨论】:

  • 您能否分享安装库所采取的具体步骤,包括涉及 conda 的步骤?当您尝试导入库时,您是否使用了正确环境中的 Python 安装?
  • 你试过了吗:pip3 install pdftotext
  • @SuperKogito,pip3 未被识别为命令。
  • 看起来您在一个 python 版本中安装了该库,同时尝试在另一个版本中调用它。好吧,您可以尝试使用!pip install pdftotext 从ipython IDLE 安装lib(这通常适用于我在Spyder 上),但我不建议使用这种方法。你能做的最好的事情是首先弄清楚你有哪些 python 版本以及它们在哪里。你可以参考this查看版本。随意发布输出,它应该有助于我们更好地理解问题。
  • @SuperKogito,是的,我从未尝试从 Anaconda3 shell 运行 Python 解释器。一直都是这样。

标签: python anaconda python-import importerror pdftotext


【解决方案1】:

pdftotext 不是模块而是命令。 因此,您可以执行以下操作

import os

file_path = "C:\documents\mypdf.pdf"

# writing data in variable
text = os.popen("pdftotext {}".format(file_path)).read()

# writing data in file
os.system("pdftotext {} {}".format(file_path, "data.txt"))

【讨论】:

  • 谢谢!我要试试。顺便说一句,我刚回来更新,因为我一直意识到问题是我从未尝试使用 Anaconda3 shell 作为 Python 解释器。因此,在命令行中输入 python 以切换到 Python 解释器模式,然后 import pdftotext 到目前为止没有返回任何错误。它绝对是您在代码中导入和调用的模块,您可以在 pypi.org/project/pdftotext 看到。
  • 所以我建议你在PC上下载Linux,避免出现此类异常
【解决方案2】:

好的,我想通了!如果您使用 Anaconda 和 conda 安装 pdftotext,那么导入它似乎只有在您从 Anaconda3 shell 中的 Python 解释器中运行它时才有效。

所以,我必须先在 Anaconda3 PowerShell 中切换到 Python 解释器模式: python

然后,我可以毫无错误地导入 pdftotext: import pdftotext

看起来像这样:

(user)> python
Python 3.7.6 (default, Jan  8 2020, 20:23:39) [MSC v.1916 64 bit (AMD64)] :: Anaconda, Inc. on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import pdftotext
>>> 

糟糕,第二个部分解决方案是它作为command line tool that is part of Xpdf 工作。

在问题帖子中采取的步骤之后,我不需要额外的安装。我在 Anaconda3 PowerShell 命令提示符中使用了该命令:

pdftotext C:\filepath\file.pdf

然后它创建了一个同名的文本文件并将其保存在同一文件夹中。我在上面链接的 Xpdf 页面上列出的命令还有其他选项(例如设置文件名)。

从命令行使用它的第二种解决方案的问题是,如果您想在之后对文本文件执行某些操作,则必须运行另一个命令或脚本。它所做的只是将其读入一个文件。

【讨论】:

  • 您好,我正在通过 conda 安装 poppler,但它没有导入 poppler 说找不到模块。你看到的一样吗?这是详细信息*.com/questions/61488601/…
  • @Baktaawar,我在你的帖子中发布我的回复。
【解决方案3】:

我遇到了同样的问题,但在执行以下操作后,它就像魅力一样!

sudo apt install build-essential libpoppler-cpp-dev pkg-config python3-dev

pip install pdftotext

【讨论】: