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).PYTHONPATH vs. sys.path
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 se instala en paquetes de sitio, script.py puede encontrar package.lib
.
Sin embargo, cuando se trabaja desde un directorio de usuarios, se necesita hacer algo más. Mi solución es configurar mi PYTHONPATH para que incluya "~/Proyecto". Otro desarrollador quiere poner esta línea de código en el inicio de script.py:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Así que Python puede encontrar la copia local de package.lib
.
Creo que esta es una mala idea, ya que esta línea solo es útil para desarrolladores o personas que ejecutan 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?
Parece que los votos y las respuestas se dividen de manera bastante pareja con una ligera inclinación hacia el uso de PYTHON_PATH, aunque esto podría ser ruido de muestreo o sesgo involuntario de la pregunta. – AJP