2011-05-20 12 views
15

Tengo un problema al obtener PyDev en eclipse para reconocer módulos ya instalados. Aquí está mi enfoque detallado. La máquina es una Mac (Snow Leopard).Al agregar módulos python a pydev en eclipse, ¿se produce un error de importación?

En la terminal el comando

python --version 

muestra Python 2.6.6.

import unidecode 

y

from unidecode import unidecode 

trabajo tanto bien!

Instalé PyDev en Eclipse y fui a configurar el intérprete de python (configuración automática). Seleccioné todos los paquetes propuestos y pulsé Aplicar y Ok.

Pero Eclipse mantiene quejándose

Traceback (most recent call last): 
    File "/Users/me/Documents/workspace/myproject/python/pythontest.py", line 12, in <module> 
    from unidecode import unidecode 
ImportError: No module named unidecode 

El archivo pitón se ve así

#!/usr/bin/env python 
# encoding: utf-8 


import sys 
import os 
from unidecode import unidecode 


def main(): 
    print unidecode(u"Ågot Aakra") 

if __name__ == '__main__': 
    main() 

Cuando quito la primera línea del script

#!/usr/bin/env python 

se traduce en el mismo error .

¿Alguien sabe dónde está el problema?

+1

¿Estás usando un virtualenv? – cerberos

+0

@cerberos: No que yo sepa. :-) – Aufwind

+0

funciona perfecto para mí sin ninguna configuración especial – joaquin

Respuesta

25

Esta es la solución a mi problema:

  1. averiguar la ruta de la carpeta ../site-packages/ de su versión de Python correspondiente. (Para mí fue /opt/local/Library/Frameworks/Python.framework/Versions/2.6/lib/python2.6/site-packages/ para Python 2.6 en mi Mac con Leopard SNOE.)
  2. preferencias de Eclipse, y va a PyDev ->Intérprete - Python.
  3. En el lado izquierdo del cuadro inferior, haga clic en Nueva carpeta.
  4. Agregue la navegación a ../site-packages/ de su correspondiente versión de python.
  5. Hit abrir.
  6. Hit Aplicar.
  7. Hit Ok.

Y usted debe ser bueno para ir. =)

Gracias @all particionts, que dieron pistas en la dirección correcta en los comentarios.

+0

No olvide comprobar que hay algo allí :) Por ej. scipy no está instalado con la instalación predeterminada de python – Elendurwen

+0

Aún funciona. Pero, además, un reinicio del eclipse era necesario para mí. – Chris

0

Pruebe las preferencias> pydev> interpreter - python y elimine y vuelva a agregar el intérprete python (asegúrese de conocer su ruta antes de eliminarlo), cuando vuelva a agregarlo marque todas las casillas.

+0

Ya lo hice, eso. No ayudó. Encontré la solución por mi cuenta, pero gracias por tu esfuerzo. =) – Aufwind

2

Me encontré con el mismo problema hoy. Estoy usando pydev y tenía un proyecto en funcionamiento con varios subpaquetes. De repente, después de haber creado un nuevo módulo, no pude usar este módulo en un paquete diferente. La característica desconcertante fue que podía usar otro módulo en el mismo sub-paquete ...

Finalmente, después de

  1. Eclipse reiniciar
  2. eliminar/añadir intérprete de Python y todas site-packages
  3. molesto rascarse la cabeza

me eliminado todas las clases compiladas con la siguiente secuencia de comandos:

import os 

def clean_folder(folder): 
    for file in os.listdir(folder): 
    path = os.path.join(folder,file) 
    if os.path.isdir(path): 
     clean_folder(path) 

    if '.pyc' == file[-4:]: 
     print 'deleting: ' + str(path) 
     os.remove(path) 

if __name__ == '__main__': 
    folder = 'YOUR_PROJECT_SRC_PATH' 
    clean_folder(folder) 

y finalmente me puedo hacer el trabajo 'real' :) espero que ayude a alguien ...

-1

Suponga que su módulo de eterna está en /.

Ejecute Eclipse y vaya a la opción del proyecto. Seleccione "PyDev-PYTHONPATH" y a la derecha verá una ventana con pestañas. Seleccione bibliotecas externas allí. Haga clic en Agregar carpeta de origen y seleccione su biblioteca en la ruta anterior.

0

@Aufwind su respuesta anterior ayudó pero no resolvió para mí.

  • Encontrar la ruta a la carpeta ../site-packages/ ....
  • preferencias abierto Eclipse y ir a PyDev -> Intérprete - Python.
  • En el lado izquierdo del cuadro inferior, haga clic en Nueva carpeta. ---> aquí me aparté de sus instrucciones. Agregué el huevo para el módulo que no estaba siendo reconocido. Agregar la carpeta site-packages no lo solucionó.
  • Hit open.
  • Aplicar Aplicar.
  • Hit Ok.

Y luego estaba listo para ir. =)

1

Cuando Eclipse se 'pierde' con respecto a los paquetes existentes en su sistema o en su proyecto, en el menú contextual de su proyecto, elija el elemento de menú 'Propiedades', luego el elemento 'PyDev - PYTHONPATH' en la vista de árbol a la izquierda del diálogo, luego el botón 'Forzar restauración de información interna'. Aparentemente, PyDev mantiene una memoria caché calculada de la información y, cuando por alguna razón la memoria caché se vuelve incoherente, puede obligar a PyDev a volver a calcular.

1

Simplemente puede agregar el módulo a la ruta pydev. Vaya a las propiedades del proyecto (desde el menú contextual) -> PyDev -> PYTHONPATH -> Bibliotecas externas. Dependiendo de si el módulo está en una carpeta de origen o un archivo zip/egg, seleccione Agregar carpeta de origen o Agregar zip/jar/egg. Navegue al directorio site-packages y señale el archivo o carpeta correspondiente (el mío es: /usr/local/lib/pythonx.x/site-packages)

+0

¡gracias! probado tantas soluciones, esto finalmente funcionó, después de reiniciar eclipse (usando python3).5 en la máquina virtual ubuntu) – sc28

1

En mi caso, no recibí este error antes de compilar, pero cuando compilo obtuve el error ImportError: Ningún módulo llamado myant.core.Traté de agregar los archivos desde PyDev-PYTHONPATH, pero nuevamente recibí el mismo error. Luego me di cuenta de que en realidad no tengo que agregar la ruta exactamente a la carpeta donde se encuentran mis archivos .py. De hecho, tengo que agregar la carpeta donde se encuentra myant.core. Después de hacer esto, reinicié cuando volví a compilar mi proyecto, el problema se solucionó. Me gustaría compartir lo que tengo:

Python 2.7 Eclipse kepler 4.3, PyDev 3.9.2 and on my ubuntu 14.04

.py archivos ubicación: /${PROJECT_DIR_NAME}/src/myant/core, por lo tanto, he añadido /${PROJECT_DIR_NAME}/src

0
  1. ventana abierta Eclipse -> preferencias e ir a PyDev -> intérprete.
  2. clic en 'Verificar si los intérpretes están sincronizados con el medio ambiente'

Esto lo hizo por mí. No se requiere reiniciar Eclipse.

0

He resuelto este problema yendo a las propiedades del proyecto -> PyDev Django y configurando el módulo de configuración de Django. enter image description here

0

de oxígeno 2 (creo que funcionó en versiones anteriores, también) ...

  1. Haga clic derecho en la carpeta del proyecto y seleccionar "Propiedades"
  2. Seleccione "PyDev - Intérprete/Gramática "
  3. Haga clic en 'Haga clic aquí para configurar un intérprete no enumerados'
  4. Seleccione cualquiera intérprete existente de la lista superior de intérpretes configurados
  5. Debe aparecer un cuadro de diálogo "Selección necesaria" en el que debe seleccionar uno o más intérpretes para restaurar. Marque todo lo aplicable
  6. clic en "Aceptar" y PyDev volverá a explorar, y supongo que, reconstruir una parte de la vista interna de sus site-packages
  7. Haga clic en "Aplicar y Cerrar" para cerrar todos los diálogos

Para hacer el marcado de error de importación desaparece en mi editor de código, necesito escribir un espacio después de la importación ofensiva y luego guardar el cambio. El error de importación desaparece porque PyDev ahora puede encontrar el módulo de importación ofensivo.

Cuestiones relacionadas