Soy muy nuevo en PyDev y Python, aunque he usado mucho Eclipse para Java. Estoy tratando de trabajar con algunos de los ejemplos de Dive Into Python y esto se siente como un problema extremadamente trivial que se está volviendo extremadamente molesto. Estoy usando Ubuntu Linux 10.04.
Quiero poder usar el archivo odbchelper.py, que se encuentra en el directorio /Desktop/Python_Tutorials/diveintopython/py
Aquí está mi archivo example.py en el que estoy trabajando en mi proyecto PyDev / Eclipse:
import sys
sys.path.append("~/Desktop/Python_Tutorials/diveintopython/py")
Esto funciona bien, pero luego quiero que la siguiente línea de mi código sea:
import odbchelper
y esto provoca un error de importación sin resolver cada vez. He agregado __init__.py
archivos a casi todos los directorios posibles y no ayuda en nada. Intenté agregar __init__.py
archivos de uno en uno a los distintos niveles de directorios entre la ubicación del proyecto y el archivo odbchelper.py, y también intenté agregar los __init__.py
archivos a todos los directorios intermedios simultáneamente. Ninguno de los dos funciona.
Todo lo que quiero hacer es tener un proyecto en algún otro directorio, digamos /Desktop/MyStuff/Project
, en el que tengo example.py ... y luego de example.py quiero importar odbchelper.py desde/Desktop/Python_Tutorials/diveintopython/py/
Cada respuesta del tablero de mensajes que puedo encontrar simplemente dice que use la sys.path.append()
función para agregar este directorio a mi ruta, y luego importarlo ... pero eso es precisamente lo que estoy haciendo en mi código y no está funcionando.
También probé el truco Ctrl- 1para suprimir el mensaje de error, pero el programa aún no funciona correctamente. Recibo un error ImportError: No module named odbchelper
. Así que claramente no se está agregando la ruta, o hay algún problema que se __init__.py
han perdido todas mis muchas permutaciones de agregar archivos.
Es muy frustrante que algo tan simple ... llamar cosas desde algún archivo que existe en otro lugar de mi máquina ... requiera tanto esfuerzo.
grp
módulo. Acabo de agregarlo a labuiltins
lista en Preferencias> PyDev> Intérpretes> Python> Forced Builtins y aún obtengo autocompletado para ese móduloRespuestas:
En las propiedades de su proyecto pydev, hay un panel llamado "PyDev - PYTHONPATH", con un subpanel llamado "Bibliotecas externas". Puede agregar carpetas de origen (cualquier carpeta que tenga una
__init__.py
) a la ruta usando ese panel. El código de su proyecto podrá importar módulos desde esas carpetas de origen.fuente
sys.path
C:\Python27\lib\site-packages
, pero en mi equipo, la carpeta lib es capitalizado:C:\Python27\Lib\site-packages
. Reemplazar la entrada en minúscula por una en mayúscula, y luego Archivo-> Reiniciar solucionó el problema. Espero que ayude a alguien más :)Estoy usando eclipse kepler 4.3, PyDev 3.9.2 y en mi ubuntu 14.04 encontré el mismo problema. Lo intenté y pasé horas, con todo lo anterior la mayoría de las opciones pero en vano. Luego probé lo siguiente, que fue genial:
Y estaba usando Python 2.7 como intérprete, aunque creo que no tiene ningún efecto.
fuente
Acabo de actualizar un proyecto de WXWindows a Python 2.7 y no tuve problemas para que Pydev reconociera al nuevo intérprete. Hizo lo mismo que antes para configurar el intérprete, hizo una nueva instalación de Eclipse y Pydev. Pensé que una parte de Python debía estar corrupta, así que reinstalé todo de nuevo. ¡Arghh! Cerró y volvió a abrir el proyecto y reinició Eclipse entre todos estos cambios.
FINALMENTE notó que puede 'eliminar la configuración del proyecto PyDev' haciendo clic derecho en el proyecto. Entonces se puede convertir en un proyecto PyDev nuevamente, ¡ahora es tan bueno como el oro!
fuente
Arreglé mi pythonpath y todo fue excelente cuando importé cosas a través de la consola, pero todas estas importaciones previamente no resueltas todavía estaban marcadas como errores en mi código, sin importar cuántas veces reinicié eclipse o refresqué / limpié el proyecto.
Hice clic derecho en el proyecto-> Pydev-> Eliminar marcadores de error y eliminó ese problema. No se preocupe, si su código contiene errores reales, se volverán a marcar.
fuente
proyecto -> propiedades -> pydev-pythonpath -> bibliotecas externas -> agregar carpeta de origen, agregue la CARPETA PARENTAL del proyecto. Luego reinicia eclipse.
fuente
Esto es lo que funcionó para mí (sugerido por soulBit):
Esta es la solución más simple que existe y elimina completamente lo molesto.
fuente
Hay dos formas de solucionar este problema:
Ahora ya no veo el error y la función de finalización de código también funciona con "botella".
fuente
Estoy ejecutando Eclipse 4.2.0 (Juno) y PyDev 2.8.1, y encontré este problema con una biblioteca instalada en la ruta de mis paquetes de sitio. De acuerdo con esta pregunta SO:
Archivos Pydev y * .pyc
... hay un problema con los archivos PyDev y pyc. En el caso de la lib en particular que traté de hacer referencia, todo lo que se entrega son archivos pyc.
Esto es lo que hice para abordar esto:
Ejecute uncompyle2 contra los archivos * .pyc en la lib de paquetes de sitio. Ejemplo:
descompyle2 -r -o / tmp / ruta / a / site-packages / lib
El error de importación no resuelto relacionado con los archivos .pyc debería desaparecer.
fuente
Lo siguiente, en mi opinión, resolverá el problema.
a. Según lo que sugirió David German. Sin embargo, esto solo se aplica a los proyectos particulares en los que se encuentra b. Agregue "~ / Desktop / Python_Tutorials / diveintopython / py" en una nueva PythonPath en Ventana -> Preferencias -> PyDev -> Intérpretes -> Intérprete de Python -> subpestaña Bibliotecas -> Nueva carpeta
Espero eso ayude.
fuente
Tuve algunos problemas al importar bibliotecas adicionales, después de intentar resolver el problema, entendiendo PYTHONPATH, Intérprete y Gramática, descubrí que hice todo lo que escribí, pero los problemas continúan. Después de eso, simplemente agregué una nueva línea vacía en los archivos que tenían los errores de importación y los guardé y el error se resolvió .
fuente
ESTO funciona perfectamente archivo para mí
Otro ejemplo es
fuente