Je suis un peu choqué par le processus d'installation du paquet Python. Plus précisément, quelle est la différence entre les packages installés dans le répertoire dist-packages et le répertoire site-packages?
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 dans dist-packages lorsqu'ils arrivent du gestionnaire de paquets Debian vers cet emplacement:
/usr/lib/python2.7/dist-packages
Puisque easy_install
et pip
sont installés à partir du gestionnaire de paquets, ils utilisent également dist-packages, mais ils placent les paquets ici:
/usr/local/lib/python2.7/dist-packages
Depuis le Wiki Python Debian :
dist-packages au lieu de site-packages. Logiciel tiers en Python installés à partir de paquets Debian vont dans dist-paquets, pas paquets de site. C'est pour réduire les conflits entre le système Python, et toute version Python de source que vous pourriez installer manuellement.
Cela signifie que si vous installez manuellement Python à partir de la source, il utilise le répertoire site-packages. Cela vous permet de séparer les deux installations, d’autant plus que Debian et Ubuntu s’appuient sur la version système de Python pour de nombreux utilitaires.
Ma solution au problème est de faire de 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'option -v
).