2010-06-06 25 views
16

estoy haciendo mi primer proyecto usando Python/Django/eclipse/pydev siguiendo esta guíaimportación sin resolver: modelos

http://docs.djangoproject.com/en/dev/intro/tutorial01/

Mi única adición es el uso de Eclipse/pydev.

Recibo muchos errores relacionados con "Importaciones no resueltas". Puedo eliminar los errores usando "eliminar marcadores de error" y mi sitio funciona perfectamente (puedo navegarlo) pero quiero deshacerme definitivamente de este problema ya que los errores aparecen de nuevo después de eliminarlos.

¿Alguna idea?

EDITAR

Usando Ubuntu 9,1

Respuesta

4

que fue capaz de deshacerse de los errores de importación que suscriben este cmd

sudo ln -s /usr/lib/pymodules/ /usr/lib/python2.6/pymodules 

tuve suerte, probando diferentes cosas que pude resolverlo, pero no estoy seguro de por qué tengo que hacer esto y cómo podría evitar hacerlo

15

Compruebe su PYTHONPATH. Necesita incluir el directorio padre de django, generalmente Lib/site-packages.

+0

Gracias Adam, he agregado a PYTHONPATH /usr/lib/pymodules/python2.6/django/ (libs parece estar allí) pero no tuve suerte :-( – StackOverflower

+0

@Timmy Is/usr/lib/modules/python2 .6/en PYTHONPATH? – Adam

+0

No tengo ese camino. Tengo /usr/lib/python2.6 – StackOverflower

1

Si tiene problemas con las importaciones no utilizadas, debo decir que use Eclipse como IDE, ya que proporciona funcionalidad para eliminar las importaciones no utilizadas presionando las teclas ctr + shift + O. O bien, en Eclipse también hay un complemento disponible que hace lo mismo automáticamente cuando guardas el código. Puedes obtener ese complemento del sitio de plugins de eclipse fácilmente y sin costo.

5

estoy en Mac OS X, pero todo lo que tenía que hacer era añadir:

/Library/Python/2.6/site-packages 

a mi PYTHONPATH del sistema (Se encuentra en: Preferencias> PyDev> Intérprete - Python)

El equivalente para Ubuntu 10.04 sería:

/usr/lib/pymodules/python2.6 

supongo que el equivalente para Ubuntu 9.x podría ser:

/usr/lib/python2.6/site-packages 

Si no es así y estás cansado de buscar, simplemente actualiza a Ubuntu 10.04 y deberías estar bien.

+3

¡Impresionante! ¡Me acabo de ayudar! Estaba a punto de votar esta respuesta y me di cuenta de que no podía porque era la mía. :) –

2

Las "importaciones no resueltas" se producen cuando Eclipse/Pydev no sabe lo que desea importar. Verifique su configuración de Pydev en las preferencias de Eclipse> Interpreter Python. Su carpeta de paquetes de sitio y las cosas que desea importar deberían estar allí en el Pythonpath.

Véase también http://pydev.org/manual_101_interpreter.html

0

que estaba teniendo un solo error de importación cuando se trabaja en PyDev en eclipse.

me importarlo como

from xyz_module import abc 

Así que hice clic en "Ctrl + 1" y "seleccionar error de importación sin resolver" en Eclipse y creó un archivo de clase en un archivo de pitón.

Resultó que había creado una aplicación llamada "xyz_module" y un archivo "xyz_module.py" (con el mismo nombre) y esto estaba causando un error de importación. Cambié el archivo de Python a un nuevo nombre y esto resolvió el error.

+0

Sí. Llamé a mi archivo nltk.py que causó el conflicto. Buena respuesta. –

2

Incluso si se agrega Lib/site-packages a PYTHONPATH, este problema puede ocurrir al usar módulos de paquetes de huevos instalados usando easy_install. El problema con ellos, y que en realidad podría depender de la versión easy_install, es que, de forma predeterminada, no se instalan directamente dentro de Lib/site-packages, sino en una carpeta que contiene el nombre completo del paquete y que tiene el sufijo .egg. Por ejemplo: Lib/site-packages/django_celery-3.0.23-py2.7.egg

Cada módulo que proviene de paquetes instalados como anteriormente necesita una entrada individual en PYTHONPATH. Si los paquetes se instalan después de que PyDev se haya instalado en el sistema, el sistema PYTHONPATH debe actualizarse en PyDev. Esto se hace automáticamente yendo a Ventana -> Preferencias -> PyDev -> Seleccione su intepreter -> en el panel de intérpretes de python elimine y vuelva a agregar su intérprete actual de python (generalmente, este debería ser el ejecutable de Python del sistema). Entonces, un reinicio de PyDev (Archivo -> Reiniciar) debería resolver los errores de "importación no resuelta".

1

En mi caso, los módulos dependían de setuptools-14.3.1, que causaba todos estos problemas. Después de la instalación de setuptools-14.3.1 el resto de los módulos se resuelven automáticamente.

+0

_Gracias @Shakti, después de 1 semana de desafortunada investigación, esto resolvió el problema_ Esto resuelve el problema con 'referencia no resuelta' para módulos en PyCharm CE y PyCharm Pro. La actualización de 'setuptools' demostró ser exitosa. Espero que esto ayude a los usuarios que tienen este problema. –

0

Tuve el mismo error y ninguna de las respuestas funcionó para mí, ya que no había opciones de PYTHONPATH en Ventana -> Preferencias -> PyDev -> Python.

En lugar de eso añade entorno PYTHONPATH en el menú:

Proyecto -> PyDev-PYTHONPATH -> Bibliotecas externo -> Añadir carpeta de origen

añadí el camino de site-packages como

/home/Documents/hcx/venv/lib/python3.5/site-packages

Ahora PyDev dejó de quejarse.

Cuestiones relacionadas