[pyar] Entornos conda muy pesados

Kiko kikocorreoso en gmail.com
Mar Feb 9 05:57:10 ART 2016


El 9 de febrero de 2016, 0:28, Damián Avila <damianavila en gmail.com>
escribió:

> >Damian, lo que le propones (clonar root) no implica que igual va a tener
> todo dos veces, ocupando espacio?
>
> Exactamente, Fisa :-)
>
> >Fisa me entendiste :). No quiero reinstalar todos los paquetes sino
> referenciar los existentes mas los mios. Pero no quiero instalar los mios
> globalmente (en la distribucion de Anaconda).
> Por eso la alternativa es clonar... Entendí a lo que apuntas, pero lo que
> pretendés está fuera del paradigma de conda. Conda te instala todo dentro
> del prefix. Referenciar paquetes fuera del prefix puede ahorrarte espacio
> (que es lo que vos querés) pero también traerte un montón de problemas...
> por ejemplo, te rompe la ejecucion de tu programa si por alguna causa
> modificás los paquetes a nivel del root (por ejemplo, podrías instalar otro
> programa que the "updatea" la versión de una dependencia que justo usás en
> tu programa y estás frito). Es por eso que conda clone te hace una copia de
> todo lo que tenes en el root (en este caso, porque tb podés clonar otros
> envs) y te recrea el environment deseado, completamente aislado del root.
> Estoy seguro que tu programa-proyecto necesita solo algunas dependencias
> especificas, no los 200-300 paquetes (y capaz me quedo corto en el número)
> que te trae anaconda, así que la otra alternativa es especificar las
> dependencias que necesitas y crear un entorno con esas dependencias, de esa
> manera tenés un entorno livianito listo para usar con tu programa...
>

Una opción que funciona con virtualenvs (con sumo cuidado) es usar ficheros
*.pth [1]

Podrías crear un entorno conda nuevo solo con Python (usando la misma
versión de Python que hay en tu root). Y luego enlazar el site-packages del
root en tu nuevo entorno usando un fichero *.pth. Lo podrías hacer
siguiendo:

> conda create -n nuevo_conda_env python=3.4.4

Cambia 3.4.4 con la versión del python de tu root. Puedes saber la versión
del Python de tu root usando:

> conda list

Eso te lista los paquetes instalados en el entorno activo y si no hay
ninguno activo te lista el del root.

Una vez que has creado el entorno nuevo_conda_env puedes crear un fichero
que se llame, por ejemplo, paths.pth y guardarlo en el site-packages de tu
nuevo entorno.
Ese fichero paths.pth deberá contener la ruta absoluta al site-packages del
entorno del que quieres 'heredar' los paquetes. Puedes saber los entornos
que tienes y su ruta usando:

> conda info -e

Una vez creado el fichero paths.pth deberás tener acceso a los paquetes del
root o del entorno que hayas 'linkado' en el paths.pth.

Esto es altamente rompible pero si andas con cuidado puedes tener un root
con lo básico y luego pequeños conda envs con solo las librerías
necesarias. Hay que tener especial cuidado al instalar nuevas cosas.
Ejemplo:

En el root tienes instalado numpy 1.10.1 y pandas 0.17.0
en el nuevo entorno conda instalas algo que depende de una versión más
moderna de numpy, por ejemplo, de numpy 1.10.4.

En el root tienes:
  numpy 1.10.1
  pandas 0.17.0 instalado usando numpy 1.10.1
  otras libs

En el entorno conda tienes:
  numpy 1.10.4
  otras libs

Si en el entorno conda importas pandas (recuerda, instalado con numpy
1.10.1) seguramente te explote en Linux. Extrañamente, en windows puede que
te funcione... Puedes ver una discusión más amplia sobre esto en [2].

[1] https://docs.python.org/3.5/library/site.html?highlight=pth
[2] https://mail.python.org/pipermail/python-es/2015-November/036092.html

Saludos.

>
> Saludos
>
>
> El 8 de febrero de 2016, 18:05, Luis Masuelli <luismasuelli en hotmail.com>
> escribió:
>
>> Fisa me entendiste :). No quiero reinstalar todos los paquetes sino
>> referenciar los existentes mas los mios. Pero no quiero instalar los mios
>> globalmente (en la distribucion de Anaconda).
>>
>> ------------------------------
>> From: fisadev en gmail.com
>> Date: Mon, 8 Feb 2016 20:17:07 +0000
>>
>> To: pyar en python.org.ar
>> Subject: Re: [pyar] Entornos conda muy pesados
>>
>> Damian, lo que le propones (clonar root) no implica que igual va a tener
>> todo dos veces, ocupando espacio? Él quiere evitar eso, la cantidad de
>> espacio que ocupa cada entorno. Es así, Luis?
>>
>> On Mon, Feb 8, 2016, 17:10 Damián Avila <damianavila en gmail.com> wrote:
>>
>> Como te dije arriba, cloná el root y en el entorno clonado instalas tu
>> paquetes... de esa manera tendrás un entorno clonado (en el ejemplo llamado
>> myroot) con tu paquete installado y el root (core) sin tu paquete.
>>
>> Saludos.
>>
>> El 8 de febrero de 2016, 13:44, Luis Masuelli <luismasuelli en hotmail.com>
>> escribió:
>>
>> Quiero un entorno para tener mis paquetes propios pero poder referenciar
>> a los que vienen con Anaconda, sin tener que instalarlos nuevamente.
>> Adicionalmente quiero que el core de Anacoda no tenga ese paquete que es
>> propio mio (ESA es la idea del entorno virtual que necesito).
>>
>> ------------------------------
>> Date: Mon, 8 Feb 2016 12:30:04 -0300
>> From: damianavila en gmail.com
>>
>> To: pyar en python.org.ar
>> Subject: Re: [pyar] Entornos conda muy pesados
>>
>> Para eso usa el ROOT, es decir, no uses ningún entorno... justamente la
>> idea the entorno "virtual" es que este separado del entorno "real"...
>>
>> Alternativamente podes clonar el ROOT
>>
>> $ conda create -n myroot --clone root
>>
>> supongo que es eso lo que estas buscando...
>>
>> Saludos.
>>
>> Damián
>>
>>
>>
>> El 8 de febrero de 2016, 12:01, Luis Masuelli <luismasuelli en hotmail.com>
>> escribió:
>>
>> Quiero poder no instalar esos paquetes que necesito, sino poder
>> importarlos desde el core de Anaconda.
>>
>> ------------------------------
>> From: hernan.grecco en gmail.com
>> Date: Sun, 7 Feb 2016 14:16:18 +0000
>> To: pyar en python.org.ar
>> Subject: Re: [pyar] Entornos conda muy pesados
>>
>>
>>
>>
>> On Sun, Feb 7, 2016, 11:10 AM Luis Masuelli <luismasuelli en hotmail.com>
>> wrote:
>>
>> Yo uso el comando
>>
>>     conda create -n mientorno anaconda
>>
>> para crear el entorno "mientorno" en mi directorio de usuario. El tema es
>> que me descarga toooooooooooodo el paquetaje de anaconda de nuevo dentro de
>> el.
>>
>> Existe alguna forma en que pueda crear mi entorno "basado" en el entorno
>> central de Anaconda? Antes los virttualenv venian con algo como
>> "no-site-packages" porque por default incluian los paquetes del python en
>> el que se basaban. Quiero algo similar pero para Anaconda, que crearme un
>> nuevo entorno me acaba de masticar otros 1.3g solo por querer un virtualenv
>> para meter algunos paquetes mios.
>>
>>
>> El problema es que pones
>>
>> conda create -n nombre anaconda.
>>
>> Anaconda incluye TODOS esos paquetes. Creá un env de Python sólo
>>
>> conda create -n nombre python
>>
>> Y después instala con conda o pip los paquetes que necesitas.
>>
>> Un abrazo,
>>
>> Hernán
>>
>>
>>
>> gracias :D.
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>>
>> _______________________________________________ pyar mailing list
>> pyar en python.org.ar http://listas.python.org.ar/listinfo/pyar PyAr -
>> Python Argentina - Sitio web: http://www.python.org.ar/ La lista de PyAr
>> esta Hosteada en USLA - Usuarios de Software Libre de Argentina -
>> http://www.usla.org.ar
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>>
>>
>>
>> --
>> *Damián*
>>
>> _______________________________________________ pyar mailing list
>> pyar en python.org.ar http://listas.python.org.ar/listinfo/pyar PyAr -
>> Python Argentina - Sitio web: http://www.python.org.ar/ La lista de PyAr
>> esta Hosteada en USLA - Usuarios de Software Libre de Argentina -
>> http://www.usla.org.ar
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>>
>>
>>
>> --
>> *Damián*
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>> --
>> --
>> fisa  -  Juan Pedro Fisanotti
>>
>> _______________________________________________ pyar mailing list
>> pyar en python.org.ar http://listas.python.org.ar/listinfo/pyar PyAr -
>> Python Argentina - Sitio web: http://www.python.org.ar/ La lista de PyAr
>> esta Hosteada en USLA - Usuarios de Software Libre de Argentina -
>> http://www.usla.org.ar
>>
>> _______________________________________________
>> pyar mailing list pyar en python.org.ar
>> http://listas.python.org.ar/listinfo/pyar
>>
>> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>>
>> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
>> Argentina - http://www.usla.org.ar
>>
>
>
>
> --
> *Damián*
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20160209/258eba9e/attachment-0001.html>


Más información sobre la lista de distribución pyar