Auf einem hohen Niveau wird apt
etwas von Ihrem System verwaltet. Insbesondere wird alles in der debian-Familie apt
verwenden, um Dinge wie Treiber, Compiler, Dinge zu verwalten, die eine Integration auf niedrigerer Ebene erfordern.
Dies bedeutet für Dinge wie numpy
und scipy
, die System-Level-Integration mit FORTRAN-Bibliotheken erfordern, einschließlich der pip
Abhängigkeit wird nicht wirklich funktionieren.
Einige Python-Pakete, die eng mit den Abhängigkeiten auf Systemebene verbunden sind, behalten apt
Pakete bei, die Ihnen einfach das gesamte Paket auf einmal zur Verfügung stellen, ohne zwischen den beiden koordinieren zu müssen. Das Minus ist, dass, weil Canonical Review-Prozess ist sehr sorgfältig (wie es sein sollte) Sie erhalten, eine weniger aktuelle Version der Bibliothek, die Sie versuchen zu verwenden.
Also, kurz gesagt: Sie benötigen oft apt
Pakete neuere pip
Installationen zu ermöglichen, und während die gleichen Python-Abhängigkeiten über apt
verfügbar sein können, diese Bibliotheken sind in der Regel viel älter und nicht die Funktionalität erforderlich sein können.
Eine häufige Problemumgehung besteht darin, einfach die Systemabhängigkeiten von einem dieser Pakete anstelle des vollständigen Pakets zu verwenden. Sie können dies tun, indem Sie das Flag build-deps
verwenden. Ein gängiges Beispiel unten angegeben:
apt-get build-dep python-scipy
pip install scipy
, die Sie tatsächlich geben die meisten up-to-date-Version von scipy während in Ihrem virtualenv arbeiten.
apt-get ist für Systemabhängigkeiten, pip ist für Python-Abhängigkeiten. –
Ich habe nicht danach gefragt, ich frage nach den Virtualenv (s) – dtgq
Warum hat die Debian-Version so viele Abhängigkeiten? Sind sie austauschbar? – dtgq