Outro desenvolvedor e eu discordamos sobre se PYTHONPATH ou sys.path devem ser usados para permitir que Python encontre um pacote Python em um diretório de usuário (por exemplo, desenvolvimento).
Temos um projeto Python com uma estrutura de diretório típica:
Project
setup.py
package
__init__.py
lib.py
script.py
Em script.py, precisamos fazer import package.lib
. Quando o pacote é instalado em sites-packages, script.py pode encontrar package.lib
.
Ao trabalhar a partir de um diretório de usuário, entretanto, algo mais precisa ser feito. Minha solução é definir meu PYTHONPATH para incluir "~ / Projeto". Outro desenvolvedor deseja colocar esta linha de código no início de script.py:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Para que Python possa encontrar a cópia local de package.lib
.
Acho que é uma má ideia, já que esta linha só é útil para desenvolvedores ou pessoas que executam uma cópia local, mas não posso dar uma boa razão para que seja uma má ideia.
Devemos usar PYTOHNPATH, sys.path ou tudo bem?