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_install
dan pip
diinstal 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-packages
adalah direktori khusus-debian tempat apt
dan teman-teman menginstal barang-barang mereka, dan site-packages
merupakan pip
direktori 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-packages
symlink 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 -v
opsi).