PYTHONPATH vs. sys.path
Inny deweloper i ja nie zgadzamy się co do tego, czy PYTHONPATH lub sys.path powinny być używane do umożliwienia Pythonowi znalezienia pakietu Pythona w katalogu użytkownika (np. Programistycznym).
Mamy projekt Pythona z typową strukturą katalogów:
Project
setup.py
package
__init__.py
lib.py
script.py
W script.py musimy to zrobićimport package.lib
. Gdy pakiet jest instalowany w pakietach site, skrypt.py może go znaleźćpackage.lib
.
Jednak podczas pracy z katalogu użytkownika trzeba zrobić coś innego. Moim rozwiązaniem jest ustawienie PYTHONPATH na „~ / Project”. Inny programista chce umieścić ten wiersz kodu na początku script.py:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Więc Python może znaleźć lokalną kopiępackage.lib
.
Myślę, że to zły pomysł, ponieważ ta linia jest przydatna tylko dla programistów lub osób działających z lokalnej kopii, ale nie mogę podać dobrego powodu, dla którego jest to zły pomysł.
Czy powinniśmy używać PYTOHNPATH, sys.path, czy też jest w porządku?