Réponses:
dist-packages est une convention spécifique à Debian qui est également présente dans ses dérivés, comme Ubuntu. Les modules sont installés sur dist-packages lorsqu'ils proviennent du gestionnaire de paquets Debian à cet emplacement:
/usr/lib/python2.7/dist-packages
Depuis easy_install
et pip
sont installés à partir du gestionnaire de packages, ils utilisent également dist-packages, mais ils placent les packages ici:
/usr/local/lib/python2.7/dist-packages
Depuis le wiki Debian Python :
dist-packages au lieu de site-packages. Les logiciels tiers Python installés à partir des paquets Debian vont dans les paquets dist, pas dans les paquets site. Cela permet de réduire les conflits entre le système Python et toute version Python source que vous pouvez installer manuellement.
Cela signifie que si vous installez manuellement Python à partir des sources, il utilise le répertoire site-packages. Cela vous permet de garder les deux installations séparées, d'autant plus que Debian et Ubuntu s'appuient sur la version système de Python pour de nombreux utilitaires système.
dist-packages
est le répertoire spécifique à Debian où les apt
amis installent leurs trucs, et site-packages
est le standardpip
répertoire .
Le problème est - que se passe-t-il lorsque différentes versions du même package sont présentes dans différents répertoires?
Ma solution au problème est de créer dist-packages
un lien symbolique vers 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
(si vous n'utilisez pas d'outils gnu, supprimez l' -v
option).