Bearbeiten: Basierend auf dem Kommentar eines Ulf Rompe ist es wichtig, dass Sie "1" anstelle von "0" verwenden , da Sie sonst sys.path unterbrechen .
Ich mache jetzt schon eine ganze Weile (über ein Jahr) Python und bin immer verwirrt darüber, warum die Leute empfehlen, dass Sie sys.path.append()
statt verwenden sys.path.insert()
. Lassen Sie mich demonstrieren.
Angenommen, ich arbeite an einem Modul namens PyWorkbooks (das auf meinem Computer installiert ist), aber gleichzeitig an einem anderen Modul (sagen wir PyJob), das PyWorkbooks enthält. Während ich an PyJob arbeite, finde ich Fehler in PyWorkbooks, die ich korrigiere, daher möchte ich eine Entwicklungsversion importieren.
Es gibt mehrere Möglichkeiten, an beiden zu arbeiten (ich könnte mein PyWorkbooks-Projekt beispielsweise in PyJob einfügen), aber manchmal muss ich trotzdem mit dem Pfad spielen. Allerdings kann ich nicht einfach tun , sys.path.append()
um den Ordner , in dem PyWorkbooks an ist . Warum? Weil Python zuerst meine installierten PyWorkbooks findet!
Aus diesem Grund müssen Sie einen sys.path.insert (1, path_to_dev_pyworkbooks) ausführen.
Zusammenfassend:
sys.path.append(path_to_dev_pyworkbooks)
import PyWorkbooks # does NOT import dev pyworkbooks, imports installed one
oder:
sys.path.insert(1, path_to_dev_pyworkbooks) # based on comments you should use **1 not 0**
import PyWorkbooks # imports correct file
Dies hat in der Vergangenheit einige Probleme für mich verursacht, und ich würde es wirklich begrüßen, wenn wir (als Community) anfangen würden zu empfehlen sys.path.insert(1, path)
, als ob Sie manuell einen Pfad einfügen. Ich denke, es ist sicher zu sagen, dass dies der gewünschte Pfad ist benutzen!
Oder habe ich etwas falsch? Es ist eine Frage, die mich manchmal stört und die ich offen haben wollte!
sys.path.insert(1, dev_folder)
aber es findet immer noch nicht das Dev-Modul und verwendet nur das installierte Modul. Wie behebe ich das?