Risposte:
dist-pacchetti è una convenzione specifica di Debian che è presente anche nei suoi derivati, come Ubuntu. I moduli sono installati su dist-pacchetti quando provengono dal gestore pacchetti Debian in questa posizione:
/usr/lib/python2.7/dist-packages
Poiché easy_install
e pip
sono installati dal gestore dei pacchetti, usano anche dist-pacchetti, ma inseriscono i pacchetti qui:
/usr/local/lib/python2.7/dist-packages
Dal Debian Python Wiki :
dist-pacchetti invece di site-pacchetti. Il software Python di terze parti installato dai pacchetti Debian va in dist-pacchetti, non in pacchetti del sito. Questo per ridurre i conflitti tra il sistema Python e qualsiasi build Python di origine che potresti installare manualmente.
Ciò significa che se si installa manualmente Python dal sorgente, utilizza la directory dei pacchetti del sito. Ciò consente di mantenere separate le due installazioni, soprattutto perché Debian e Ubuntu si affidano alla versione di sistema di Python per molte utility di sistema.
dist-packages
è la directory specifica di debian dove apt
e gli amici installano le loro cose, ed site-packages
è la pip
directory standard .
Il problema è: cosa succede quando diverse versioni dello stesso pacchetto sono presenti in directory diverse?
La mia soluzione al problema è creare dist-packages
un collegamento simbolico a site-packages
:
for d in $(find $WORKON_HOME -type d -name dist-packages); do
pushd $d
cd ..
if test -d dist-packages/__pycache__; then
mv -v dist-packages/__pycache__/* site-packages/__pycache__/
rmdir -v dist-packages/__pycache__
fi
mv -v dist-packages/* site-packages/
rmdir -v dist-packages
ln -sv site-packages dist-packages
popd
done
(se non si utilizzano gli strumenti gnu, rimuovere l' -v
opzione).