Debian 8: python3-pip dependencies

ServerSide

New Member
Ich war grad dabei mit meinem vServer zu spielen, da ist mir aufgefallen, dass mir auf meinem Debian System pip3 fehlt.

Ich also: apt-get install python3-pip

Und jetzt schaut Euch mal die dependencies dazu an:

Die folgenden NEUEN Pakete werden installiert:
binutils build-essential cpp cpp-4.9 dpkg-dev fakeroot g++ g++-4.9 gcc gcc-4.9 libalgorithm-diff-perl libalgorithm-diff-xs-perl
libalgorithm-merge-perl libasan1 libatomic1 libc-dev-bin libc6-dev libcilkrts5 libcloog-isl4 libdpkg-perl libexpat1-dev libfakeroot
libfile-fcntllock-perl libgcc-4.9-dev libgomp1 libisl10 libitm1 liblsan0 libmpc3 libmpfr4 libpython3-dev libpython3.4
libpython3.4-dev libstdc++-4.9-dev libtsan0 libubsan0 linux-libc-dev make manpages-dev python3-chardet python3-colorama python3-dev
python3-distlib python3-html5lib python3-pip python3-pkg-resources python3-requests python3-setuptools python3-six python3-urllib3
python3-wheel python3.4-dev

Und das für eine einzelne .py Datei!

Jetz hab ich es halt manuell installiert. Wie macht Ihr das? Nehmt Ihr die dependencies in Kauf oder installiert Ihr es auch manuell? Weiß jemand was da überhaupt genau los ist?
 

ThomasChr

Member
Ich vermute schwer dass pip3 manche Python Libs erst kompilieren muss (weil Teile davon Libraries in C/C++ sind) deshalb die ganzen dev-Abhängigkeiten.
Ich muss zugeben dass ich den Abhängigkeitrn von apt (Ubuntu) meistens glaube und solange keine groben Schnitzer drin sind auch bestätige!

Thomas
 

storvi

New Member
Wenn du dir die Abhängigkeiten genauer anschaust, dann siehst du, wie Thomas schon gesagt hast, viele Pakete, welche fürs Kompilieren, sowie weitere Funktionen von pip benötigt werden.

Gerade die Pakete build-essentials und gcc* benötigt pip um die heruntergeladenen Pakete zu bauen. Die python-* Pakete braucht pip, um überhaupt zu funktionieren (Beispiel python-requests - damit läd pip selbst die Pakete herunter).

In der Regel stimmen die Abhängigkeiten schon und apt kümmert sich um die Installation der minimal notwendigen Anzahl an Paketen.

Gruß
Markus
 

ServerSide

New Member
Ja, die ganzen Build-related Pakete lassen natürlich darauf schliessen, dass pip dann auch selbst builden kann. Es ging mir eher darum wie sehr Ihr eigentlich die Dependencies checkt, bevor Ihr etwas installiert.

Und bei mir im konkreten Fall ist es ja auch so. Ich benötige das Psycopg2 Paket (Postgres Anbindung), welches erst kompiliert werden muss. Trotzdem fand ich es interessant und wollte das mal erwähnt haben. :)
 

GwenDragon

Registered User
Es ging mir eher darum wie sehr Ihr eigentlich die Dependencies checkt, bevor Ihr etwas installiert.
Wieso müssen die Admins das prüfen, was aus den Repos kommt? apt mach das doch automatisch.
Man muss sich schon darauf verlassen ob die Abhängigkeiten stimmen, sonst darf man gar nix aus den Distrie-Repos installieren.
Wenn man allerdings aus nicht unterstützten testing-Repos oder irgendwelche deb-Pakete holt, kommt man nicht drumrum vor Installation mit dpkg zu prüfen, ob was fehlt, sonst geht das Gewarne auf den Geist.

Pythons Tools pip oder pecl brauchen eben ein paar Tools zum Erstellen von Bibliotheken für Python-Module, dazu gehören auch C-Compiler und andere externe dynamisch gelinkte Module/Bibliotheken.
 

ServerSide

New Member
Wieso müssen die Admins das prüfen, was aus den Repos kommt? apt mach das doch automatisch.
Man muss sich schon darauf verlassen ob die Abhängigkeiten stimmen, sonst darf man gar nix aus den Distrie-Repos installieren.
Wenn man allerdings aus nicht unterstützten testing-Repos oder irgendwelche deb-Pakete holt, kommt man nicht drumrum vor Installation mit dpkg zu prüfen, ob was fehlt, sonst geht das Gewarne auf den Geist.

Pythons Tools pip oder pecl brauchen eben ein paar Tools zum Erstellen von Bibliotheken für Python-Module, dazu gehören auch C-Compiler und andere externe dynamisch gelinkte Module/Bibliotheken.

Du warst ganz offensichtlich noch nie in der FreeBSD oder gentoo Community unterwegs! ;-)
 

GwenDragon

Registered User
Nö, ich artbeite nur mit CP/M, PDP-11, MicroVaxen und SCO. Mit sowas neu-modernem wie FreeBSD kenn ich mich nicht aus :p
 

remote_mind

Blog Benutzer
Nö, ich artbeite nur mit CP/M, PDP-11, MicroVaxen und SCO. Mit sowas neu-modernem wie FreeBSD kenn ich mich nicht aus :p

Mir persönlich ist alles recht wo kein systemd dabei ist :p

Zum Topic: in der Regel ist es bei Debian ja so das viele Pakete mit allen Optionen gebaut werden, das treibt die Abhängigkeiten in die Höhe.

Dazu sind die Dependencies oft auch sehr feinteilig aufgedröselt, was dazu führt das die reine Anzahl an Paketen groß ist weil jedes einzelne Paket auf das Minimum heruntergebrochen ist.
 

elias5000

Site Reliability Engineer
Nö, ich artbeite nur mit CP/M, PDP-11, MicroVaxen und SCO. Mit sowas neu-modernem wie FreeBSD kenn ich mich nicht aus :p
Wieso gibt's hier keinen Gefällt-mir-Button? :D

Zum Thema: Laut https://wiki.debian.org/Python ist in Debian 8 Python 2.7 der default. Wenn du keine zwingenden Gründe hast wieso du Python 3 benötigst, ist es besser beim Dist-default zu bleiben. Das dürfte auch erheblich weniger Abhängigkeiten mitbringen, die zusätzlich installiert werden müssen.
 

DeaD_EyE

Blog Benutzer
Python 2.7 wird noch bis 2020 supportet. Bis dahin muss sich die Community darum kümmern, dass die ganzen Tools nach Python 3 portiert werden. Teilweise ist das schon geschehen. Programmiert man selbst, sollte man mit Python 3 anfangen.
 
Top