PYTHONPATH vs. sys.path
Otro desarrollador y yo no estamos de acuerdo sobre si PYTHONPATH o sys.path deben utilizarse para permitir que Python encuentre un paquete de Python en un directorio de usuarios (por ejemplo, desarrollo).
Tenemos un proyecto Python con una estructura de directorio típica:
Project
setup.py
package
__init__.py
lib.py
script.py
En script.py, tenemos que hacerimport package.lib
. Cuando el paquete se instala en los paquetes de sitio, script.py puede encontrarpackage.lib
.
Sin embargo, cuando se trabaja desde un directorio de usuarios, se debe hacer algo más. Mi solución es configurar mi PYTHONPATH para incluir "~ / Proyecto". Otro desarrollador quiere poner esta línea de código al comienzo de script.py:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Para que Python pueda encontrar la copia local depackage.lib
.
Creo que es una mala idea, ya que esta línea solo es útil para desarrolladores o personas que se ejecutan desde una copia local, pero no puedo dar una buena razón por la que es una mala idea.
¿Deberíamos usar PYTOHNPATH, sys.path, o está bien?