Estoy experimentando con python, principalmente solucionando el código de otras personas. Estoy tratando de ejecutar un programa, "path\folderA\program.py
".Falló la importación de Python desde otra carpeta
Estoy funcionando el programa de path\folderA
estoy consiguiendo un error:
ImportError: No module named fff.ggg.ppp
program.py contiene una importación:
from fff.ggg.ppp import mmm
En la carpeta "ruta \ FolderB" existen: "path\folderB\fff\__init__.py
" "path\folderB\fff\ggg
"
carpeta ggg
también contiene __init__.py
, así como el programa ppp.py
de la lectura de otros mensajes, como Python error "ImportError: No module named" entiendo que teniendo la __init__.py
hace una carpeta de un "paquete", que hace que las importaciones de ella posible - pero que doesn' t trabajo, ya que estoy recibiendo un error.
Esto ha estado trabajando para otras personas que trabajaron con estos proyectos, así que hay algo mal con mi configuración.
He leído algo sobre los directorios que tienen que estar en sys.path. ¿Eso significa que tengo que agregarlos a la ruta de la variable de entorno? Eso significaría agregar una gran cantidad de directorios a la ruta, por lo que no puede ser.
Así que también encontró lo siguiente:
import sys
sys.path.append(<path to FolderB>)
Pero eso significa cambiar el código (que no ha sido necesario por otras personas) y la codificación dura un camino a lo que es en mi máquina local - la cual No debería tener que hacerlo, ¿verdad?
No puedo visualizarlo, aparentemente no se supone que deba cambiar el código y codificar la ruta física al módulo de importación. Entonces, ¿cómo puede un programa de la carpetaA incluso saber buscar en la carpeta B una importación?
¿Cómo funciona la magia de __init__.py
trabajo?
Python busca en la variable de entorno 'PYTHONPATH', no' PATH' – mgilson