Jawaban:
dist-package adalah konvensi khusus Debian yang juga hadir dalam turunannya, seperti Ubuntu. Modul diinstal ke dist-paket ketika mereka datang dari manajer paket Debian ke lokasi ini:
/usr/lib/python2.7/dist-packages
Karena easy_installdan pipdiinstal dari manajer paket, mereka juga menggunakan paket-dist, tetapi mereka meletakkan paket di sini:
/usr/local/lib/python2.7/dist-packages
Dari Wiki Debian Python :
paket-dist bukan paket situs. Perangkat lunak Python pihak ketiga yang diinstal dari paket Debian masuk ke paket-dist, bukan paket-situs. Ini untuk mengurangi konflik antara sistem Python, dan setiap bangunan dari sumber Python yang mungkin Anda pasang secara manual.
Ini berarti bahwa jika Anda menginstal Python secara manual dari sumber, ia menggunakan direktori paket situs. Ini memungkinkan Anda untuk memisahkan kedua instalasi, terutama karena Debian dan Ubuntu mengandalkan versi sistem Python untuk banyak utilitas sistem.
dist-packagesadalah direktori khusus-debian tempat aptdan teman-teman menginstal barang-barang mereka, dan site-packagesmerupakan pipdirektori standar .
Masalahnya adalah - apa yang terjadi ketika versi berbeda dari paket yang sama hadir di direktori yang berbeda?
Solusi saya untuk masalah ini adalah membuat dist-packagessymlink ke 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
(jika Anda tidak menggunakan alat gnu, hapus -vopsi).