Aquí está mi configuración de directorio:
mydir ├── script1.py └── shared ├── otherstuff ├── script2.py └── pkg ├── box.py └── __init__.py
script2.py
comienza con
import pkg
y funciona muy bien. Cuando incluyo la misma línea en script1.py
, obtengo:
Traceback (most recent call last): File "script1.py", line 1, in import pkg
¿Hay alguna buena manera de obtener una syntax tan sencilla de trabajar en script1.py
? He estado leyendo sobre PYTHONPATH
y sys.path
durante la última hora, pero estoy tratando de hacer que algunas funciones básicas estén disponibles para mi repo, y no puedo creer que requiera modificar PYTHONPATH
cada vez que quiera ejecutar un script.
¿Que me estoy perdiendo aqui? ¿Cuál es la mejor manera de convertir pkg
en script1.py
?
Tu tienes que hacer:
from shared import pkg
Además, su directorio shared
debe tener un archivo __init__.py
Probé en Python 3.x, puedes hacer cualquiera de
import shared.pkg
o
from shared import pkg
Si no desea crear el archivo __init__.py
en shared
y usar import shared.pkg
, puede import shared.pkg
haciendo lo siguiente:
import sys sys.path.insert(0, 'shared') import pkg