Ad un livello alto apt
è qualcosa che viene mantenuto dal sistema. In particolare, qualsiasi cosa nella famiglia debian utilizzerà apt
per gestire cose come driver, compilatori, cose che richiedono un'integrazione di basso livello.
Questo significa per cose come numpy
e scipy
che richiedono l'integrazione a livello di sistema con le librerie FORTRAN, inclusa la dipendenza pip
non funzionerà.
Alcuni pacchetti python strettamente collegati con le dipendenze a livello di sistema mantengono i pacchetti apt
che forniscono semplicemente il pacchetto completo tutto in una volta senza dover coordinare tra i due. Il meno è che, poiché il processo di revisione di Canonical è piuttosto meticoloso (come dovrebbe essere), si otterrà, 9/10, una versione meno recente della libreria che si sta tentando di utilizzare.
Così, in breve: si sarà spesso richiedono apt
pacchetti per consentire recenti pip
installazioni più, e mentre le stesse dipendenze Python possono essere disponibili tramite apt
, queste librerie sono in genere molto più vecchio e non potrebbe essere necessaria funzionalità.
Una soluzione alternativa è semplicemente utilizzare le dipendenze di sistema da uno di questi pacchetti anziché dal pacchetto completo. È possibile farlo utilizzando il flag build-deps
. Un esempio comune riportata qui sotto:
apt-get build-dep python-scipy
pip install scipy
che effettivamente vi darà la versione più up-to-date di SciPy mentre si lavora all'interno della vostra virtualenv.
fonte
2016-01-18 19:49:34
apt-get è per le dipendenze di sistema, pip è per le dipendenze python. –
Non me lo chiedo, sto chiedendo le virtualenv (s) – dtgq
Perché la versione di Debian ha così tante dipendenze? Sono intercambiabili? – dtgq