pdfminer – ImportError: no hay un módulo llamado pdfminer.pdfdocument

Estoy intentando instalar pdfMiner para trabajar con CollectiveAccess. Mi anfitrión (pair.com) me ha dado la siguiente información para ayudar en esta búsqueda:

Al comstackr, es probable que sea necesario instruir al
Instalación para usar su espacio de cuenta arriba, y no intente instalar
en los directorios del sistema operativo. Típicamente, usando “-
home = / usr / home / username / pdfminer “al final del comando de instalación debería permitir eso.

Seguí estas instrucciones al intentar instalar. El resultado fue:

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 

No veo nada de malo en eso (soy muy nuevo en Python), pero cuando bash ejecutar el comando de ejemplo $ pdf2txt.py samples/simple1.pdf , $ pdf2txt.py samples/simple1.pdf este error:

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

Estoy corriendo python 2.7.3. No puedo instalar desde root (alojamiento compartido). La versión más reciente de pdfminer, que es el 2014/03/28. He visto algunas publicaciones sobre problemas similares (“no hay módulo llamado …” pero no es exactamente lo mismo. Las soluciones propuestas tampoco ayudan (como la instalación con sudo, no es una opción; especifica la ruta para Python (que no parece ser el problema), etc.).

¿O es una pregunta para mi anfitrión? (Es decir, algo extraño o diferente sobre su configuración)

Dado que el paquete pdfminer se instala en una ubicación no estándar / no predeterminada, Python no podrá encontrarlo. Para usarlo, deberá agregarlo a su ‘pythonpath’. Tres maneras:

  1. En el tiempo de ejecución, ponga esto en su script pdf2txt.py :

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

    o

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

    Nota: La ruta de instalación especificada con --home se usa como Lib para todos los paquetes que desee instalar, no solo este. Debe eliminar esa carpeta y volver a instalar con -- home=/usr/home/username/myPyLibs (o cualquier nombre genérico) para que cuando instale otros paquetes con esa ruta de instalación, solo necesite una ruta para agregar a Tu Lib local para poder importarlos:

     import sys sys.path.insert(1, "/usr/home/username/myPyLibs") 
  2. Agréguelo a PYTHONPATH antes de ejecutar su script:

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

    Y luego coloque eso en su archivo ~/.bashrc ( /usr/home/username/.bashrc ) o .profile según corresponda. Esto puede no funcionar con progtwigs que no se ejecutan desde la consola.

  3. Cree un VirtualEnv e instale los paquetes que necesita para eso.

Tuve un error como este:

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

Mi problema fue que había nombrado mi script pdfminer.py que, por las razones que no conozco, Python lo tomó para los archivos del paquete original del pdfminer y trató de comstackrlo.

__pycache__ nombre de mi script a otra cosa, __pycache__ todo el archivo *.pyc __pycache__ y el directorio __pycache__ y mi problema se resolvió.