Tengo dos proyectos separados que comparten un nombre de paquete. Funcionan bien siempre que no estén ambos en PYTHONPATH, pero tan pronto como aparezcan, uno de ellos no puede encontrar importaciones en su propio proyecto.¿Pueden los módulos con una jerarquía de paquete común mencionar varias veces en mi PYTHONPATH?
ejemplo, dos proyectos como este:
Proyecto 1:
x/
__init__.py
test.py
foo.py
test.py contiene la línea:
import x.foo
Proyecto 2:
x/
__init__.py
bar.py
Si Corro
PYTHONPATH=. python x/y/test.py
no hay ningún error. Pero si me quedo
PYTHONPATH='pathtoproject2:.' python x/test.py
me sale el error:
Traceback (most recent call last):
File "x/test.py", line 1, in <module>
import x.foo
ImportError: No module named foo
¿Hay una manera de tener diferentes proyectos Python con una cuota de paquete común del PYTHONPATH? ¿O Python siempre usará solo la primera ruta donde se encuentra un paquete?
Nota: Sé que si modifica la importación de x.foo importar foo entonces todo funcionará bien. Pero quiero saber si es posible hacerlo sin modificar ninguno de los paquetes.
+1 Parece que, aunque es posible, como se explica en la otra respuesta, no es la forma en Python .. . –