Un altro sviluppatore e non sono d'accordo sull'utilizzo di PYTHONPATH o sys.path per consentire a Python di trovare un pacchetto Python in una directory utente (ad es. Sviluppo).PYTHONPATH vs. sys.path
abbiamo un progetto Python con una tipica struttura di directory:
Project
setup.py
package
__init__.py
lib.py
script.py
In script.py, abbiamo bisogno di fare import package.lib
. Quando il pacchetto è installato nei pacchetti del sito, script.py può trovare package.lib
.
Quando si lavora da una directory utente, tuttavia, è necessario fare qualcos'altro. La mia soluzione è impostare il mio PYTHONPATH per includere "~/Project". Un altro sviluppatore vuole mettere questa riga di codice all'inizio del script.py:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Così che Python riesce a trovare la copia locale del package.lib
.
Penso che questa sia una cattiva idea, in quanto questa linea è utile solo per gli sviluppatori o le persone che corrono da una copia locale, ma non posso dare una buona ragione per cui è una cattiva idea.
Dovremmo usare PYTOHNPATH, sys.path o va bene?
Sembra che i voti e le risposte siano divisi in modo abbastanza uniforme con una leggera inclinazione verso l'uso di PYTHON_PATH anche se questo potrebbe essere il rumore di campionamento o il biasing non intenzionale dalla domanda. – AJP