繁体   English   中英

使用 conda 和 poppler、Windows 10 安装后无法导入 pdftotext

[英]Unable to import pdftotext after installing with conda and poppler, Windows 10

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

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

按照此处此处的说明(非常有帮助),我:

  1. 已安装 Microsoft Visual C++ 构建工具。
  2. 安装蟒蛇。
  3. 获得了最新版本的 Anaconda 并对其进行了更新,对每个步骤使用单独的 Anaconda3 命令。 我不记得这些命令,也没有再找到它们。
  4. 更新了 Microsoft Visual 14。
  5. 使用 conda 通过 Anaconda3 命令安装 poppler: conda install -c conda-forge poppler
  6. 使用 pip 通过 Anaconda3 命令pip install pdftotextpip 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。 Python 3.7.6 是通过 Anaconda3 提示python -V (使用 conda 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 导入,因为PyPI 中示例代码使用它。 但是,它确实作为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
>>> 

pdftotext是命令,而不是模块。 所以如果你想在 Python 中执行这个命令,那么可以写

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"))

好吧,我想通了! 如果您使用 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
>>> 

Ooor,第二个部分解决方案是它作为命令行工具工作,它是 Xpdf 的一部分

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

pdftotext C:\\filepath\\file.pdf

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

从命令行使用它的第二种解决方案的问题是,如果你想在之后对文本文件做一些事情,你必须运行另一个命令或脚本。 它所做的就是将它读到一个文件中。

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

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

pip 安装 pdftotext

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM