Wenn Sie die Python-Pakete nicht für alle Benutzer benötigen, können Sie sie wie folgt bei Ihnen zu Hause installieren:
pip install --user packagename
Die Installation bei Ihnen zu Hause führt nicht zu Konflikten mit dem Paketmanager.
Standardmäßig pip install --user
wird in Ihrem "Benutzersite" -Verzeichnis installiert. In der Regel ist , dass so etwas wie: /home/lesmana/.local/lib/python3.6/site-packages
.
Mit dem folgenden Befehl wird unter anderem der Speicherort Ihrer "Benutzersite" gedruckt:
python -m site
So passen Sie den Installationsort an:
PYTHONUSERBASE=$HOME/some/dir pip install --user packagename
das installiert alles unter $HOME/some/dir
zu rennen:
PYTHONUSERBASE=$HOME/some/dir $HOME/some/dir/bin/progname
Weitere Informationen finden Sie im Pip-Handbuch .
Wenn Sie das Python-Paket für alle Benutzer verwenden möchten, sollten Sie es am besten installieren /opt
. Zum Beispiel so:
PYTHONUSERBASE=/opt/packagedir pip install packagename
(Beachten Sie die fehlenden --user
)
und laufen wie oben:
PYTHONUSERBASE=/opt/packagedir /opt/packagedir/bin/progname
Hintergrunderklärung: /opt
Wird allgemein von GNU / Linux-Distributionen als das Verzeichnis anerkannt, in dem der lokale Benutzer oder Systemadministrator seine eigenen Sachen installieren kann. mit anderen Worten: Der Paketmanager von Distributionen berührt in der Regel nicht /opt
. Dies ist im Filesystem Hierarchy Standard mehr oder weniger standardisiert
Aus Komfortgründen für die Benutzer möchten Sie dennoch ein Wrapper-Skript schreiben und in /bin
oder ablegen /usr/bin
. Dies birgt immer noch das Risiko einer Kollision mit dem Distributionspaket-Manager, es handelt sich jedoch nur um eine einzige Wrapper-Skriptdatei. Der Schaden ist also minimal. Sie können dem Wrapper-Skript einen ähnlichen Namen geben local-foo
oder custom-foo
das Risiko einer Kollision mit dem Verteilungspaket-Manager weiter minimieren.
Alternativ können Sie ändern PATH
schließen /opt/bin
Ihre Wrapper - Skript gibt und zu platzieren. Dies erfordert jedoch wiederum, dass Sie eine (oder einige) Systemdateien ändern, in denen PATH
definiert ist, die wiederum vom Verteilungspaket-Manager überschrieben werden können.
Kurz gesagt: Wenn Sie für alle Benutzer installieren möchten, tun Sie dies in /opt
. Wo Sie das Wrapper-Skript aus Komfortgründen platzieren, ist ein Urteilsspruch.
Weitere Informationen zum /opt
Dateisystem-Hierarchie-Standard:
python
und ich wünschte, ich hätte das gewusst, bevor ichsudio
Dinge anpipste. Danke dafür.In der Regel wird in einer Distribution empfohlen, den Paket-Manager der Distribution zu verwenden. Sie können natürlich Dinge mit pip (oder in der Perl-Welt mit cpan) installieren oder Dinge selbst kompilieren und installieren. Wenn Sie dies tun, kennt der Paketmanager der Distribution diese jedoch nicht und kann keine Abhängigkeiten oder Aktualisierungen für sie verwalten.
Die Verwendung von pip entspricht in etwa dem Kompilieren und Installieren eines eigenen Pakets. Tun Sie es, wenn Sie müssen, aber bevorzugen Sie den Paket-Manager der Distribution.
quelle
pip
(zumindest global übersudo
oder als root) - Ich habe gerade einigesite-package/...
bereits vorhandene Fehler erhalten, alspacman
versucht wurde, einige Abhängigkeiten zu installierenDer richtige Weg für ArchLinux
Der richtige Weg, um PYTHON-Pakete in ArchLinux zu installieren, ist die Verwendung von PACMAN! Um Pakete auf Python3 zu installieren, müssen Sie verwenden
Wenn Sie Pakete von Python2 installieren möchten, müssen Sie verwenden
Die meisten Python-Pakete befinden sich in den ArchLinux-Repositorys und die Pakete, die sich nicht in AUR befinden (ArchLinux User Repositorys). Für diese Pakete müssen Sie die PKGBUILD-Datei herunterladen und kompilieren. Danach müssen Sie PACMAN verwenden, um die Installation abzuschließen
Der zweite richtige Weg für ArchLinux
Wenn das Paket nicht in der AUR enthalten ist oder PKGBUILD nicht funktioniert, können Sie es mit PIP in Python3 installieren
oder Python2
Sie könnten
virtualenv
oder sogar eine Chance gebenconda
In Arch können Sie auch VirtualEnvironments verwenden. Dies kann die Portabilität Ihres Codes verbessern und auch alte Pakete verwalten. Installieren Sie es mit
und probier das aus
Wenn Sie diese Umgebung erstellen
yourenv
, werden Sie so einrichtenpip
, dass Pakete nur in dieser Umgebung und nicht auf dem gesamten System installiert werden.Diese anderen Links können hilfreich sein, wenn Sie mehr über das Verwalten von Paketen unter Linux erfahren möchten
conda
odervirtualenv
:Installieren von Python-Paketen von einem Jupyter-Notebook
Code Python unter ArchLinux
Wenn Sie diese Regeln befolgen, wird Ihr ArchLinux nicht beschädigt und es treten keine Abhängigkeitsprobleme zwischen PACMAN und PIP auf.
Hoffe es ist nützlich!
quelle
Für bestimmte Pakete (solche, die ich höchstwahrscheinlich nicht hacken möchte) erstelle ich mein eigenes Paket folgendermaßen:
https://github.com/bluepeppers/pip2arch
dann baue und installiere das hergestellte PKGBUILD.
Ich hinterlasse virtualenvs für Pakete, die ich ändern oder hacken möchte.
quelle
Überprüfen Sie zusätzlich zu den anderen Antworten hier das
python-virtualenv
Paket. Es kann sehr nützlich sein, wenn Sie in mehreren Projekten mit unterschiedlichen Abhängigkeiten mit nicht übereinstimmenden Versionsnummern entwickeln.https://wiki.archlinux.org/index.php/Python_VirtualEnv
Beachten Sie auch, dass es zwei Varianten von pip und virtualenv gibt. Eine für Python 2 und eine für Python 3. Wenn die Installation mit einem Syntaxfehler fehlschlägt, versuchen Sie es möglicherweise mit der falschen Version.
quelle