[Python-es] 'Heredar' un venv dentro de otro

Kiko kikocorreoso en gmail.com
Lun Dic 7 02:42:43 EST 2015


El 7 de diciembre de 2015, 3:37, Jesus Cea <jcea en jcea.es> escribió:

> On 06/12/15 16:10, Kiko wrote:
> >     Echa un vistazo a los ficheros ".pth".
> >
> > No he encontrado buena documentación que me aclare muy bien qué hacer
> > con ellos, donde colocarlos,... Si tienes algún buen enlace te lo
> agradezco.
>
> La documentación oficial lo explica bastante bien:
> <https://docs.python.org/3.5/library/site.html>.
>
> Una búsqueda de "pth files python" en duck duck go muestra mogollón de
> información. El primer link es:
> <https://stackoverflow.com/questions/15208615/using-pth-files#15209116>.
>

Ahora me queda un poco más claro dónde colocar el fichero .pth, ahora sé
que se puede llamar de cualquier forma, ahora sé qué se puede incluir
dentro. Hasta ahora no lo tenía muy claro. La documentación de Python está
muy bien pero hecho en falta algunos HOWTO de entrada a algunos temas
generales (no, el módulo site.py de la stdlib no es un buen sitio para
encontrar qué hacer con un pth ni para saber de su existencia).


>
> > No sé si te estoy entendiendo bien. No quiero reinstalar una versión de
> > una librería que ya tengo instalada en un virtualenv padre. Quiero algo
> > inteligente que maneje las dependencias en caso de instalar una versión
> > diferente de una librería en el venv hijo. Algo que diga, 'estás
> > instalando numpy x.x, versión no instalada en ningún venv, pero numpy
> > versión x.y instalado en un venv padre, las librerías a, b, c instaladas
> > en el venv padre que dependen de numpy x.y se van a ¡¡¡romper!!!'.
>
> Tal vez si escribieses un documento explicando la casuística...
>
> Lo simple es tener un venv con las herramientas estándar instaladas, y
> que los venv hijos "lo vean". Digamos que tu instalación de numpy,
> scipy, matplotlib, etc., es compartida por todos los hijos. Puedes
> instalar cosas nuevas en los hijos, pero no que reemplacen algo que está
> en el padre.
>
> Eso es lo fácil.
>

Sí, y eso lo tengo resuelto de manera poco elegante usando sys.path.append.
Lo actualizo usando ficheros pth, que creo que quedará más limpio.


>
> Si necesitas algo más complejo, el primer paso es describirlo claro,
> estar seguro de que eso es exactamente lo que quieres y luego lo miramos
> :).
>
> Recuerda el problema XY: <http://xyproblem.info/>
>
>
Unos correos más arriba está definido y los problemas que querría resolver,
si se puede (y alguno que todavía no habrá salido):



*Problemas que tengo que solventar:-Si en el venv padre he instalado numpy
1.10 y pandas con esa versión de numpy y en el venv hijo instalo, por
ejemplo, numpy 1.9, el pandas del venv padre se rompe, como no podía ser de
otra manera.-Los ficheros que se añaden en el bin/ del venv padre no los
estoy añadiendo en el bin/ del venv hijo y no puedo acceder. Por ejemplo,
si instalo ipython en el venv padre, desde el venv hijo no puedo acceder a
la consola de ipython usando 'ipython' en la línea de comandos.*
*-En mi sistema tengo un sitecustomize.py en /usr/lib/python3.4/*
*sitecustomize.py y se ejecuta ese antes que el mio que he creado. He
tenido que mover ese (cuyo código no hacia nada útil y que no sé porqué
está ahí) para que funcionase mi sitecustomize. Este es jodido porque no sé
como resolver el que haya otro sitecustomize.py que se ejecute antes que el
mio. Puedo modificar el orden del sys.path pero eso igual rompe otras
cosas... Necesito investigar más esto pero no he encontrado mucha info al
respecto.*

*-Otros problemas que no he encontrado y seguro habrá...*
Me mantengo en silencio hasta que avance un poco más y pueda definir el
nuevo problemaXY (los problemas están vivos y mutan!!!).

Gracias a todos.

Saludos.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20151207/9d15d63b/attachment.html>


Más información sobre la lista de distribución Python-es