Respuestas:
dist-packages es una convención específica de Debian que también está presente en sus derivados, como Ubuntu. Los módulos se instalan en los paquetes dist cuando provienen del administrador de paquetes Debian en esta ubicación:
/usr/lib/python2.7/dist-packages
Desde easy_install
y pip
se instalan desde el administrador de paquetes, también usan dist-packages, pero ponen paquetes aquí:
/usr/local/lib/python2.7/dist-packages
Del Wiki de Debian Python :
dist-packages en lugar de site-packages. El software Python de terceros instalado desde los paquetes de Debian va a los paquetes dist, no a los paquetes del sitio. Esto es para reducir los conflictos entre el sistema Python y cualquier compilación de Python desde el origen que pueda instalar manualmente.
Esto significa que si instala manualmente Python desde la fuente, usa el directorio de paquetes del sitio. Esto le permite mantener las dos instalaciones separadas, especialmente porque Debian y Ubuntu confían en la versión del sistema de Python para muchas utilidades del sistema.
dist-packages
es el directorio específico de Debian donde los apt
amigos instalan sus cosas y site-packages
es el pip
directorio estándar .
El problema es: ¿qué sucede cuando hay diferentes versiones del mismo paquete en diferentes directorios?
Mi solución al problema es hacer dist-packages
un enlace simbólico para 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 no está utilizando herramientas GNU, elimine la -v
opción).