¿Cuál es el equivalente al estilo python de los entornos virtuales pero para una cuenta de usuario en un sistema operativo Mac?

1

Quiero instalar diferentes paquetes y software, pero realmente no me gusta la idea de hacer un comando sudo para instalar nada.

Utilizo Homebrew y MacPorts para obtener las aplicaciones que necesito, pero es posible instalar aplicaciones, bibliotecas y paquetes específicos para un entorno virtual estilo Python y, si creo que no quiero que estos paquetes entren en conflicto, simplemente puedo eliminarlos. ¿Un entorno virtual o simplemente usar un entorno diferente?

Por favor, avíseme si la pregunta no tiene sentido. Desde que empecé a usar entornos virtuales en Python, no puedo imaginar que no funcione con entornos virtuales y me preguntaba si hay algo equivalente o un patrón de instalación que la gente recomiende que imite ese comportamiento.

ps > Sé que también hay Fink pero no lo uso.

Versión 2:
Creo que necesito verificar mi pregunta más.
Ya uso virtualenvwrapper y hago todo lo relacionado con Python en entornos virtuales. La pregunta es independiente de Python. Es solo que virtualenv me inspiró para ver si existía un equivalente en la cuenta de usuario.

Lo que pensé que sería increíble, surgió cuando intentaba instalar libjpeg, PIL, FreeType2, Pillow, etc.
Quería instalar estas bibliotecas o paquetes como libjpeg, FreeType2 en un entorno virtual del sistema operativo. Si siento que la versión de Homebrew de estas instalaciones de la biblioteca no me satisface, podría trabajar en un entorno diferente o probar otros procedimientos de instalación y cambiar entre los entornos de las aplicaciones instaladas.

Entonces, me preguntaba si existe algo así para OS X o hay algunos trucos que se pueden hacer para emularlo.

    
pregunta 22.11.2011 - 05:39

2 respuestas

2

Si está totalmente en el paradigma, entonces las máquinas virtuales parecen ser el siguiente paso lógico, ¿no? Coge Virtualbox y haz lo tuyo en una máquina virtual.

Tenga en cuenta, sin embargo, que los administradores de paquetes resuelven muchos problemas de direcciones virtualenv. Las librerías que mencionas no cambiarán las interfaces radicalmente, son versiones estables.

Son las librerías de python que son las más volátiles, no cosas como FreeType. Solo usaría la versión que X11 esté usando.

    
respondido por el chiggsy 30.05.2012 - 00:07
0

No estoy seguro de entender lo que estás preguntando, pero si estás preguntando sobre la creación de entornos virtuales Python usando virtualenv , entonces ya estás allí. La ventaja de usar virtualenv es que crea una instancia de Python independiente dentro del directorio del entorno virtual que crea. Cuando usa los comandos python y pip dentro del directorio virtualenv bin (que es lo que sucede cuando activate el virtualenv), cualquier paquete de Python que instale, ya sea con python setup.py o pip install o incluso easy_install se instala en un directorio site-library dentro del entorno virtual y no tiene efecto en ninguna otra instalación de Python en su sistema. El directorio del entorno virtual y su contenido están sujetos a los permisos normales del sistema de archivos, por lo que puede crearlo sin la necesidad de usar sudo (por ejemplo, si lo crea en algún lugar dentro de su directorio de inicio) y puede configurar los permisos de los archivos para controlar si existen. Otros usuarios tienen acceso al virtualenv. A menos que use la opción --no-site-packages al crear el virtualenv, virtualenv tendrá acceso a paquetes nuevos o existentes agregados a la instancia de Python base (el sistema Python o cualquier otro que usó para crear el virtualenv, de manera predeterminada, la instancia de Python que virtualenv se instaló originalmente en). Pero los paquetes instalados localmente en el entorno virtual no afectan la instancia original de Python. Si usó virtualenv --no-site-packages , el entorno virtual no "heredará" ningún paquete fuera de la biblioteca estándar de Python.

Puede usar virtualenv junto con administradores de paquetes de terceros como MacPorts, Homebrew o Fink (incluyen virtualenv ports / recipes / packages) pero dentro de un entorno virtual, deberá administrar los paquetes locales de Python. , probablemente utilizando el pip instalado dentro de cada entorno virtual. virtualenv no proporciona un mecanismo para administrar entidades que no están empaquetadas usando el empaquetado de estilo distutils estándar de Python, es decir, aplicaciones que no son de Python y bibliotecas en C

    
respondido por el Ned Deily 22.11.2011 - 09:06

Lea otras preguntas en las etiquetas