Saltar al contenido

¿Cuál es la diferencia entre dist-packages y site-packages?

Esta es la respuesta más completa que encomtrarás aportar, pero primero mírala pausadamente y analiza si se adapta a tu trabajo.

Solución:

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 dist-paquetes cuando provienen del administrador de paquetes de Debian en esta ubicación:

/usr/lib/python2.7/dist-packages

Ya que 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

De la wiki de Debian Python:

dist-paquetes en lugar de paquetes de sitio. 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 el conflicto entre el sistema Python y cualquier compilación de Python desde la fuente que pueda instalar manualmente.

Esto significa que si instala manualmente Python desde la fuente, utiliza el directorio de paquetes del sitio. Esto le permite mantener las dos instalaciones separadas, especialmente porque Debian y Ubuntu dependen de la versión del sistema de Python para muchas utilidades del sistema.

dist-packages es el directorio específico de debian donde apt y amigos instalan sus cosas, y site-packages es el estándar pip directorio.

El problema es: ¿qué sucede cuando diferentes versiones del mismo paquete están presentes en diferentes directorios?

Mi solución al problema es hacer dist-packages un enlace simbólico a 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 el -v opción).

Si para ti ha sido útil nuestro artículo, nos gustaría que lo compartas con el resto juniors y nos ayudes a extender este contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *