Szenario:
Ein Python-Paket abc wird als Systempaket installiert, z. B. an /usr/lib
oder /usr/local/...
(entweder als sudo pip install abc
oder über den Systempaket-Manager).
Eine höhere Version des abc-Pakets wird mit pip
als Benutzerpaket installiert: pip install abc --user
.
Welche Version ist für den jeweiligen Benutzer wirksam? (d. h. wenn ein Skript enthält import abc
)
Antwort1
Je nachdem, welches sich im $PATH des Benutzers befindet.
which abc
zeigt Ihnen, welches ausgeführt wird, wenn Sie einfach ausführen abc
.
echo $PATH
zeigt der Reihe nach die Verzeichnisse an, die auf die ausführbare Datei überprüft werden, wobei der erste gefundene Speicherort verwendet wird.
Wenn Sie sich in einer Pipenv befinden, kann dies das Verhalten ändern, die obigen Aussagen gelten jedoch weiterhin. Sie stellen möglicherweise lediglich fest, dass Sie einen anderen $PATH haben.