我正在尝试使用pdftotext,但它不会导入。
我在联想IdeaPad S340(一台工作笔记本电脑(上运行Windows 10(64位(。
按照这里和这里的指示(超级有帮助(,我:
- 已安装Microsoft可视化C++生成工具。
- 安装了蟒蛇。
- 获取最新版本的 Anaconda 并对其进行更新,为每个步骤使用单独的 Anaconda3 命令。我不记得这些命令,也没有再次找到它们。
- Microsoft视觉 14 更新。
- 使用 conda 通过 Anaconda3 命令安装 poppler:
conda install -c conda-forge poppler
- 使用 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:programdataanaconda3libsite-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 info
时为 3.7.6.final.0 (。
我还有:
- 蟒蛇版本"自定义",构建py37_1。
- 康达 4.8.2,py37_0,通道康达锻造。
- 波普勒 0.84.0, h1affe6b_0, 康达-锻造.
- 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:filepathfile.pdf
然后,它创建了一个具有相同名称的文本文件,并将其保存在同一个文件夹中。我上面链接的 Xpdf 页面上概述的命令还有其他选项(例如设置文件名(。
Buuuut,这不是一个令人满意的解决方案。我能够通过额外的步骤来处理我当前的用例任务,但我仍然无法从 Python 程序中调用 pdftotext。
更新:
如果你使用 Anaconda和 conda 安装 pdftotext,那么导入它似乎只有在 Python 解释器中从 Anaconda3 shell 中运行它时才有效。
因此,我必须先在 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
>>>
我遇到了同样的问题,但在执行以下操作后,它就像魅力一样工作!
sudo apt install build-essential libpoppler-cpp-dev pkg-config python3-dev
pip install pdftotext
pdftotext
不是一个模块,而是一个命令。 因此,您可以执行以下操作
import os
file_path = "C:documentsmypdf.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,那么导入它似乎只有在 Python 解释器中从 Anaconda3 shell 中运行它时才有效。
因此,我必须先在 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:filepathfile.pdf
然后,它创建了一个具有相同名称的文本文件,并将其保存在同一个文件夹中。我上面链接的 Xpdf 页面上概述的命令还有其他选项(例如设置文件名(。
从命令行使用它的第二种解决方案的问题是,如果您想在之后对文本文件执行某些操作,则必须运行另一个命令或脚本。它所做的只是将其读取到文件。