pdfminer — ImportError: нет модуля с именем pdfminer.pdfdocument

Я пытаюсь установить pdfMiner для работы с CollectiveAccess. Мой хост (pair.com) дал мне следующую информацию, чтобы помочь в этом квесте:

При компиляции, скорее всего, потребуется указать при установке
использовать пространство вашей учетной записи выше, а не пытаться установить
в каталоги операционной системы. Как правило, использование «--
home=/usr/home/username/pdfminer» в конце команды установки позволяет это сделать.

Я следовал этой инструкции при попытке установить. В результате:

running install
running build
running build_py
running build_scripts
running install_lib
running install_scripts
changing mode of /usr/home/username/pdfminer/bin/latin2ascii.py to 755
changing mode of /usr/home/username/pdfminer/bin/pdf2txt.py to 755
changing mode of /usr/home/username/pdfminer/bin/dumppdf.py to 755
running install_egg_info
Removing /usr/home/username/pdfminer/lib/python/pdfminer-20140328.egg-info
Writing /usr/home/username/pdfminer/lib/python/pdfminer-20140328.egg-info

Я не вижу в этом ничего плохого (я новичок в python), но когда я пытаюсь запустить пример команды $ pdf2txt.py samples/simple1.pdf, я получаю эту ошибку:

Traceback (most recent call last):   File "pdf2txt.py", line 3, in <module>
    from pdfminer.pdfdocument import PDFDocument ImportError: No module named pdfminer.pdfdocument

Я использую питон 2.7.3. Я не могу установить из-под root (виртуальный хостинг). Самая последняя версия pdfminer, 2014/03/28. Я видел несколько сообщений о похожих проблемах ("нет модуля с именем...", но ничего точно такого же нет. Предлагаемые решения либо не помогают (например, установка с помощью sudo - не вариант; указание пути для python (который похоже, это не проблема) и т. д.).

Или это вопрос к моему хозяину? (т. е. что-то не так или отличается в их настройке)


person KLL    schedule 09.03.2016    source источник


Ответы (4)


Поскольку пакет pdfminer установлен в нестандартном расположении/не по умолчанию, Python не сможет его найти. Чтобы использовать его, вам нужно будет добавить его в свой «pythonpath». Три способа:

  1. Во время выполнения поместите это в свой скрипт pdf2txt.py:

    import sys
    # if there are no conflicting packages in the default Python Libs =>
    sys.path.append("/usr/home/username/pdfminer")
    

    or

    import sys
    # to always use your package lib before the system's =>
    sys.path.insert(1, "/usr/home/username/pdfminer")
    

    Примечание. Путь установки, указанный с помощью --home, используется в качестве библиотеки для всех пакетов, которые вы хотите установить, а не только для этого. Вы должны удалить эту папку и переустановить с -- home=/usr/home/username/myPyLibs (или любым общим именем), чтобы при установке других пакетов с этим путем установки вам потребовался бы только один путь для добавления в вашу локальную библиотеку, чтобы иметь возможность импортировать их:

    import sys
    sys.path.insert(1, "/usr/home/username/myPyLibs")
    
  2. Добавьте его в PYTHONPATH перед выполнением скрипта:

    export PYTHONPATH="${PYTHONPATH}:/usr/home/username/myPyLibs"
    

    А затем поместите это в свой файл ~/.bashrc (/usr/home/username/.bashrc) или .profile, если применимо. Это может не работать для программ, которые не выполняются из консоли.

  3. Создайте VirtualEnv и установите необходимые для этого пакеты.

person aneroid    schedule 10.03.2016

У меня была такая ошибка:

No module named 'pdfminer.pdfinterp'; 'pdfminer' is not a package

Моя проблема заключалась в том, что я назвал свой скрипт pdfminer.py, который по непонятным мне причинам Python принял за исходные файлы пакета pdfminer и попытался его скомпилировать.

Я переименовал свой скрипт во что-то другое, удалил все файлы *.pyc и каталог __pycache__, и моя проблема была решена.

person hup    schedule 10.09.2017

используйте эту команду, которая сработала для меня и устранила ошибку

pip install pdfminer.six
person Mahmoud Magdy    schedule 12.10.2020

У меня есть виртуальная среда, и мне пришлось активировать ее до того, как я установил pip3, чтобы venv ее увидел.

source ~/venv/bin/activate
person Cory Brickner    schedule 05.05.2020