Невозможно импортировать pdftotext после установки с помощью conda и poppler, Windows 10 - PullRequest
1 голос
/ 29 января 2020

Я пытаюсь использовать pdftotext, но он не импортируется.

Я использую Windows 10 (64 бит) на Lenovo IdeaPad S340, рабочем ноутбуке.

Следуя указаниям здесь и здесь (которые были очень полезны), я:

  1. Установленные инструменты сборки Microsoft Visual C ++.
  2. Установлена ​​Anaconda.
  3. Получил последнюю версию Anaconda и обновил ее, используя отдельные команды Anaconda3 для каждого из этих шагов. Я не помню команд и не нашел их снова.
  4. Обновлен Microsoft Visual 14.
  5. Использовал conda для установки poppler с помощью команды Anaconda3: conda install -c conda-forge poppler
  6. Используется pip для установки pdftotext с помощью команды Anaconda3: 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 (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-файла в простой текстовый файл?

Спасибо за вашу помощь!

Обновление:

Я начал заново с новым пользователем на той же машине и в ОС (у другого пользователя было пробел в имени, поэтому его В filepath есть пробел, который может вызвать проблемы). У меня та же проблема.

У меня Python 3.7.6 и 3.8.1. Python 3.7.6 - это то, что появляется при проверке версии через приглашение Anaconda3 python -V (3.7.6.final.0 при использовании conda info).

У меня также есть:

  • Anaconda Версия "custom", сборка 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 также не сработала.

Обновление:

Я понял, что-то вроде , pdftotext не работает как импорт Python, так как пример кода в PyPI использует его. Но он работает как инструмент командной строки , являющийся частью Xpdf , без дополнительной установки после шагов.

Я использовал команду в командной строке Anaconda3 PowerShell:

pdftotext C:\filepath\file.pdf

Затем он создал текстовый файл с тем же именем и сохранил его в той же папке. Есть дополнительные параметры для команды, описанной на странице Xpdf, на которую я ссылался выше (например, установка имени вашего файла).

Buuuut , это не удовлетворительное решение. Я могу позаботиться о своей текущей задаче варианта использования с дополнительным шагом, но я все еще не могу вызвать pdftotext из Python программы.

Обновление:

Если вы устанавливаете pdftotext с использованием Anaconda и conda, то его импорт, кажется, работает только при запуске его в интерпретаторе Python из оболочки Anaconda3.

Итак, у меня было чтобы сначала переключиться в режим интерпретатора Python в Anaconda3 PowerShell: 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
>>> 

Ответы [ 2 ]

0 голосов
/ 09 февраля 2020

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"))
0 голосов
/ 08 февраля 2020

Хорошо, я понял это! Если вы устанавливаете pdftotext с использованием Anaconda и conda, то, похоже, импорт работает только при запуске его в интерпретаторе Python из оболочки Anaconda3.

Итак, мне пришлось переключиться на интерпретатор Python Сначала в режиме Anaconda3 PowerShell: 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, на которую я ссылался выше (например, установка имени вашего файла).

Проблема со вторым решением использования его из командной строки заключается в том, что если вы хотите что-то сделать с помощью текстового файла вы должны запустить другую команду или скрипт. Все, что он делает, это читает его в файл.

...