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?

Respuestas a la pregunta(5)

Su respuesta a la pregunta