Ein anderer Entwickler und ich sind uns nicht einig, ob PYTHONPATH oder sys.path verwendet werden sollen, damit Python ein Python-Paket in einem Benutzerverzeichnis (z. B. Entwicklungsverzeichnis) finden kann.
Wir haben ein Python-Projekt mit einer typischen Verzeichnisstruktur:
Project
setup.py
package
__init__.py
lib.py
script.py
In script.py müssen wir tun import package.lib
. Wenn das Paket in Site-Paketen installiert ist, kann script.py finden package.lib
.
Bei der Arbeit in einem Benutzerverzeichnis muss jedoch noch etwas anderes getan werden. Meine Lösung besteht darin, meinen PYTHONPATH so einzustellen, dass er "~ / Project" enthält. Ein anderer Entwickler möchte diese Codezeile am Anfang von script.py einfügen:
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
Damit Python die lokale Kopie von finden kann package.lib
.
Ich denke, dies ist eine schlechte Idee, da diese Zeile nur für Entwickler oder Leute nützlich ist, die mit einer lokalen Kopie arbeiten, aber ich kann keinen guten Grund nennen, warum es eine schlechte Idee ist.
Sollten wir PYTOHNPATH, sys.path oder entweder in Ordnung verwenden?