Ошибка: невозможно импортировать имя PDFDocument из pdfminer.pdfparser

Мне нужно извлечь текст из pdf-файлов, и я успешно использовал pdfminer.six, извлекая как текстовые абзацы, так и таблицы. Но теперь я получаю ошибку, связанную со строкой

from pdfminer.pdfparser import PDFParser, PDFDocument: 

ImportError: невозможно импортировать имя 'PDFDocument' из 'pdfminer.pdfparser' (C: \ Users [имя пользователя] \ Anaconda3 \ lib \ site-packages \ pdfminer \ pdfparser.py)

Я использую Anaconda Jupyter. Python 3.7.3. Пакет pdfminer.six-20181108

Код, который я использую, основан на следующем: Как читать файл PDF с помощью pdfminer3k ?

Основываясь на приведенных ниже советах, я несколько раз пытался удалить и переустановить Anaconda, pdfminer.six и другие пакеты: https://github.com/pdfminer/pdfminer.six/issues/196 Неделю назад это внезапно сработало, но теперь я снова получаю сообщение об ошибке.

Поскольку я работаю над Win10, я также пробовал использовать Linux Ubuntu, как описано здесь: https://medium.com/hugo-ferreiras-blog/using-windows-subsystem-for-linux-for-data-science-9a8e68d7610c

Та же ошибка.

Затем, основываясь на приведенной ниже веб-странице, я подумал, что стоит попробовать разделить PDFparser, PDFDocument: из

from pdfminer.pdfparser import PDFParser, PDFDocument

to

from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage

https://loctv.wordpress.com/2017/02/07/fix-importerror-cannot-import-name-pdfdocument-when-using-slate/ .. Но позже в коде возникли новые ошибки.

Начало моего кода выглядит так:

```
path = [name and path of file]
fp = open(path, 'rb')
from pdfminer.pdfparser import PDFParser, PDFDocument
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import PDFPageAggregator
from pdfminer.layout import LAParams, LTTextBox, LTTextLine
```

Я ожидаю, что смогу запустить код и извлечь текст из pdf-файла, но код останавливается из-за ошибки, связанной с PDFDocument pdfminer.pdfparser

Я очень ценю любые советы о том, что мне делать! Может быть, это как-то связано с тем, как установлен pdfminer.six?


person Ingeborg    schedule 07.05.2019    source источник
comment
Вы это проверили? github.com/pdfminer/pdfminer.six/issues/196   -  person R4444    schedule 07.05.2019
comment
Да, именно там я научился переустановить, чтобы решить. Но все равно спасибо :-)   -  person Ingeborg    schedule 09.05.2019


Ответы (2)


Мне помогла Нутодден Серит. Измените это:

from pdfminer.pdfparser import PDFParser, PDFDocument

to:

from pdfminer.pdfparser import PDFParser
from pdfminer.pdfdocument import PDFDocument
from pdfminer.pdfpage import PDFPage

И добавить парсер в

doc = PDFDocument()

To:

doc = PDFDocument(parser)

А потом:

for page in doc.get_pages():

To:

for page in PDFPage.create_pages(doc):
person Ingeborg    schedule 14.05.2019

Согласно документации pdfminer

from pdfminer.pdfdocument import PDFDocument`
person Akshay Patel    schedule 21.11.2020