Pip - wie macht man es richtig?

Probleme bei der Installation?
Antworten
Üpsilon
User
Beiträge: 222
Registriert: Samstag 15. September 2012, 19:23

Früher habe ich immer gedankenlos Dinge per Pip global installiert und nie Virtual Environments benutzt. Außerdem kamen manchmal Python-Bibliotheken durch den normalen Paketmanager APT auf den Computer. Denn auf Linux sind ja viele substantielle Programme in Python geschrieben.

Einmal hatte ich ein Erlebnis, als ich Tensorflow per PIP installiert habe. Das hat dazu geführt, dass Numpy downgegradet wurde. Außerdem wollte ich Tensorflow dann wieder runterschmeißen, aber dessen Abhängigkeiten hab ich irgendwie nicht runterbekommen.

Jetzt benutze ich aber seit ein paar Tagen Arch btw. Und jetzt frage ich, was soll ich in Bezug auf Python-Bibliotheken tun?
- Ist es eine gute Idee, Numpy global zu installieren oder soll ich es lieber in ein eigenes Virtual Environment installieren?
- Sollte ich Numpy per PIP installieren oder per Pacman?
- Tensorflow gibt es auch in den Arch-Repos. Ist es überhaupt eine gute Idee das per Pacman zu installieren? Aufgrund des obenstehenden Erlebnisses neige ich eher dazu, es über Pip in ein eigenes Virtual Environment zu installieren.

Wie erspart man sich Ärger?

LG Y. :)
PS: Die angebotene Summe ist beachtlich.
Franck
User
Beiträge: 1
Registriert: Samstag 2. April 2022, 17:10

Hallo Üpsilon,
- Ist es eine gute Idee, Numpy global zu installieren

Nein, ist es nicht. Deine Erfahrungen mit TensorFlow und NumPy belegen dies.
oder soll ich es lieber in ein eigenes Virtual Environment installieren?
Ja, denn das wird von dem NumPy-Projekt empfohlen, siehe https://numpy.org/install/:
(numpy.org) Best practice is to:

use a different environment per project you’re working on,
record package names and versions using your package installer; each has its own metadata format for this:
  • Conda: conda environments and environment.yml
  • Pip: virtual environments and requirements.txt
  • Poetry: virtual environments and pyproject.toml
- Sollte ich Numpy per PIP installieren oder per Pacman?
So wie ich es verstehe, unterstützt pacman virtuelle Umgebungen nicht. Daher verbleibt dir nur PIP, wenn du deine Auswahl auf die beiden reduzierst.
Tensorflow gibt es auch in den Arch-Repos. Ist es überhaupt eine gute Idee das per Pacman zu installieren? Aufgrund des obenstehenden Erlebnisses neige ich eher dazu, es über Pip in ein eigenes Virtual Environment zu installieren.
Folge deinen Neigungen, denn du bist nicht der einzige, der Probleme mit der globalen Installation von TensorFlow hatte.


Viele Grüße

Franck
narpfel
User
Beiträge: 644
Registriert: Freitag 20. Oktober 2017, 16:10

Die beste Lösung ist, das hier in `~/.pip/pip.conf` zu haben:

Code: Alles auswählen

[global]
require-virtualenv = true
Mit dem Paketmanager Sachen zu installieren ist IMHO okay, damit macht man sich eher nichts kaputt, kann es wieder deinstallieren, ... Zumindest für Quick-and-dirty-Sachen.

Normalerweise und/oder wenn du eine spezielle Version willst/brauchst, würde ich einfach eine venv empfehlen.
Üpsilon
User
Beiträge: 222
Registriert: Samstag 15. September 2012, 19:23

Danke für eure Antworten!
PS: Die angebotene Summe ist beachtlich.
HBerger
User
Beiträge: 8
Registriert: Montag 23. August 2021, 13:29

eigentlich ist die Frage, wie deine App mal installiert werden soll
Mit dem Paketmanager Sachen zu installieren ist IMHO okay
Macht aber IMHO nur Sinn, wenn deine App über den Packetmanager auch ausgeliefert soll / muss
Dann wird deine App quasi eine "system app"

Ich such auch noch eine möglichkeit, meine python .... tools/apps/scripts ... zu verteilen, ohne es zu ner Install orgie für den potentiellen nutzer werden zu lassen ...
Was nicht einfach ist, wenn keine Ahnung über das System hasst ... in meinem Fall kannst WIndows, WSL, XYZ Linux Distrie sein ...
Für die meisten Nutzer ist dann Python immer noch ne Würgeschlange und Pip klingt nach nem Mode-Getränk
Für entwickler usw ist pip +venv wirklich super, aber für Anwender ?
Benutzeravatar
sparrow
User
Beiträge: 4187
Registriert: Freitag 17. April 2009, 10:28

Es gibt verschiedene Tools, die da "helfen".
Recht häufig benutzt wird die pyinstaller/autp-by-to-exe Kombination, die dein Programm, die Abhängigkeiten und den Interpreter in ein selbstentpackendes Archiv packt. Muss man dann für jedes System einzeln bauen, funktioniert aber in der Anwendung eigentlich ganz gut.
Antworten