Otro desarrollador y yo no estamos de acuerdo sobre si PYTHONPATH o sys.path deben usarse para permitir que Python encuentre un paquete de Python en un directorio de usuario (por ejemplo, desarrollo).
Tenemos un proyecto de Python con una estructura de directorios típica:
Project
setup.py
package
__init__.py
lib.py
script.py
En script.py, tenemos que hacer import package.lib
. Cuando el paquete está instalado en site-packages, script.py puede encontrar package.lib
.
Sin embargo, cuando se trabaja desde un directorio de usuario, es necesario 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 principio de script.py:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Para que Python pueda encontrar la copia local de package.lib
.
Creo que es una mala idea, ya que esta línea solo es útil para desarrolladores o personas que ejecutan desde una copia local, pero no puedo dar una buena razón por la que es una mala idea.
¿Debemos usar PYTOHNPATH, sys.path o bien?