python - pyedit - Problemas de importación sin resolver con PyDev y Eclipse
pydev eclipse luna install (10)
Soy muy nuevo en PyDev y Python, aunque he usado mucho Eclipse para Java. Estoy tratando de trabajar en 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 causa un error de importación no resuelto cada vez. He agregado archivos __init__.py
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 archivos __init__.py
a todos los directorios 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 cual tengo example.py ... y luego de example.py Quiero importar odbchelper.py de /Desktop/Python_Tutorials/diveintopython/py/
Cada respuesta de la pizarra de mensajes puedo encontrar diciendo que use la función sys.path.append()
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 - 1 para suprimir el mensaje de error, pero el programa todavía no funciona correctamente. ImportError: No module named odbchelper
un error, ImportError: No module named odbchelper
. Por lo tanto, es evidente que no se está agregando la ruta, o hay algún problema que todas mis muchas permutaciones de agregar archivos __init__.py
hayan fallado.
Es muy frustrante que algo tan simple ... llamar cosas de un archivo que existe en otro lugar de mi máquina ... requiera tanto esfuerzo.
A continuación, en mi opinión, resolverá el problema
- Agregar init .py a su carpeta "~ / Desktop / Python_Tutorials / diveintopython / py"
- Vaya a Ventana -> Preferencias -> PyDev -> Intérpretes -> Intérprete de Python para eliminar la configuración del intérprete de Python (la razón es porque PyDev no puede actualizar automáticamente las actualizaciones realizadas en cualquier System PythonPath)
- Agregue el intérprete con los mismos detalles que antes (esto actualizará su configuración de Python Interpreter con las actualizaciones realizadas en su PythonPath)
- Finalmente, dado que su carpeta "~ / Desktop / Python_Tutorials / diveintopython / py" no es un PythonPath estándar, deberá agregarlo. Hay dos formas de hacerlo
a. Según lo que David German sugirió. Sin embargo, esto solo es aplicable para los proyectos particulares en los que se encuentre b. Agregue "~ / Desktop / Python_Tutorials / diveintopython / py" en un nuevo PythonPath en Ventana -> Preferencias -> PyDev -> Intérpretes -> Intérprete de Python -> Subficha Bibliotecas -> NewFolder
Espero eso ayude.
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 configurando el intérprete, hizo una nueva instalación de Eclipse y Pydev. Pensé que una parte de Python debía estar corrupta, así que volví a instalar todo. ¡Arghh! Cerré y volví 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. Luego se puede convertir en un proyecto PyDev nuevamente, ¡ahora es tan bueno como el oro!
Aquí está lo que funcionó para mí (sugerido por soulBit):
1) Restart using restart from the file menu
2) Once it started again, manually close and open it.
Esta es la solución más simple y elimina completamente lo molesto.
Arreglé mi ruta de acceso de pitón y todo fue excelente cuando importé cosas a través de la consola, pero todas estas importaciones no resueltas seguían marcadas como errores en mi código, sin importar cuántas veces reiniciaba eclipse o actualizaba / limpiaba el proyecto.
Hice clic derecho en el proyecto-> Pydev-> Eliminar marcadores de error y se deshizo de ese problema. No se preocupe, si su código contiene errores reales, se volverán a marcar.
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 __init__.py
) a la ruta usando ese panel. El código de su proyecto podrá importar módulos desde esas carpetas de origen.
Estoy ejecutando Eclipse 4.2.0 (Juno) y PyDev 2.8.1, y me encontré con este problema con una lib instalada en mi ruta de site-packages. De acuerdo con esta pregunta SO:
... hay un problema con los archivos PyDev y pyc. En el caso de la lib particular que traté de referencia, todo lo que se entrega son archivos pyc.
Esto es lo que hice para abordar esto:
- Instalar uncompyle2 desde https://github.com/Mysterie/uncompyle2
Ejecute uncompyle2 contra los archivos * .pyc en los paquetes de sitio lib. Ejemplo:
uncompyle2 -r -o / tmp / path / to / site-packages / lib
- Cambie el nombre de los archivos * .pyc_dis resultantes producidos de uncompyle2 a * .py
- Mueva / copie estos archivos * .py a la ruta de paquetes de sitio
- En Eclipse, selecciona Archivo> Reiniciar
El error de importación no resuelto relacionado con los archivos .pyc ahora debería desaparecer.
Estoy usando eclipse kepler 4.3, PyDev 3.9.2 y en mi ubuntu 14.04 me encontré con el mismo problema. Intenté y pasé horas, con todas las opciones anteriores pero en vano. Luego intenté lo siguiente, que fue genial:
- Seleccione Proyecto -> RightClick-> PyDev -> Eliminar configuración de proyecto PyDev
- archivo-> reiniciar
Y estaba usando Python 2.7 como intérprete, aunque no tiene efecto, creo.
Hay dos formas de resolver este problema:
- Elimine el intérprete de Python de "intérpretes de Python" y agréguelo nuevamente.
- O simplemente agregue la carpeta con las bibliotecas en el intérprete que está utilizando en su proyecto, en mi caso yo estaba usando "botella" y la carpeta que agregué fue "c: / Python33 / Lib / site-packages / bottle-0.11.6 -py3.3.egg "
Ahora ya no veo el error y la función de finalización de código funciona también con "botella".
proyecto -> propiedades -> pydev-pythonpath -> bibliotecas externas -> agregar carpeta de origen, agregue la CARPETA DE PADRES del proyecto. Luego reinicia eclipse.
KD.py
class A:
a=10;
KD2.py
from com.jbk.KD import A;
class B:
b=120;
aa=A();
print(aa.a)
ESTO funciona perfectamente archivo para mí
Otro ejemplo es
main.py
=======
from com.jbk.scenarios.objectcreation.settings import _init
from com.jbk.scenarios.objectcreation.subfile import stuff
_init();
stuff();
settings.py
==========
def _init():
print("kiran")
subfile.py
==========
def stuff():
print("asasas")