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

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? Si creo que no quiero que estos paquetes colisionen, simplemente puedo eliminar un entorno virtual. o simplemente usar un entorno diferente?

Avíseme si la pregunta no tiene sentido. Desde que comencé a usar entornos virtuales en Python, no puedo imaginar no trabajar 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 a fondo.
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ó a ver si había un equivalente en toda 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 considerara que la versión Homebrew de estas instalaciones de biblioteca no me satisface, podría trabajar en un entorno diferente o probar otros procedimientos de instalación y cambiar entre entornos de las aplicaciones instaladas.

Entonces, me preguntaba si algo así existe para OS X o ¿hay algunos trucos que uno pueda hacer para emularlo?


fuente
No estoy seguro de entender su pregunta correctamente, pero ¿por qué no usar máquinas virtuales? Eche un vistazo a VirtualBox en combinación con Vagrant (vagrantup.com).
Gerry

Respuestas:

2

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

Sin embargo, tenga en cuenta que los administradores de paquetes resuelven muchos problemas que virtualenv aborda. Las bibliotecas que mencionas no cambiarán las interfaces radicalmente, son versiones estables.

Son las bibliotecas de Python las más volátiles, no cosas como FreeType. Simplemente usaría cualquier versión que use X11.

chiggsy
fuente
0

No estoy seguro de entender lo que está preguntando, pero si está preguntando sobre la creación de entornos virtuales de Python utilizando virtualenv, entonces ya está allí. La ventaja de usar virtualenves que crea una instancia de Python autónoma dentro del directorio de entorno virtual que crea. Cuando se utiliza el pythony pipcomandos dentro del virtualenv bindirectorio (que es lo que sucede cuando activateel virtualenv), los paquetes de Python de instalar, ya sea con python setup.pyo pip installni siquiera easy_installse instalan a unasite-librarydirectorio 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 para que pueda crearlo sin la necesidad de usarlo sudo(por ejemplo, si lo crea en algún lugar dentro de su directorio de inicio) y puede establecer permisos de archivo para controlar si otros usuarios tienen acceso a la virtualenv. A menos que use la --no-site-packagesopción al crear virtualenv, virtualenv tendrá acceso a paquetes existentes o nuevos agregados a la instancia base de Python (el sistema Python o cualquier otro que haya utilizado para crear virtualenv, por defecto, la instancia de Python quevirtualenvfue instalado originalmente en). Pero los paquetes instalados localmente en el entorno virtual no afectan la instancia original de Python. Si lo utilizó virtualenv --no-site-packages, el entorno virtual no "heredará" ningún paquete fuera de la biblioteca estándar de Python.

Puede usarlo virtualenvjunto con administradores de paquetes de terceros como MacPorts, Homebrew o Fink (que incluyen virtualenvpuertos / recetas / paquetes), pero dentro de un entorno virtual deberá administrar los paquetes locales de Python usted mismo, presumiblemente utilizando los pipinstalados dentro de cada entorno virtual. . virtualenvno proporciona un mecanismo para administrar entidades que no están empaquetadas utilizando el paquete de estilo distutils estándar de Python, es decir, aplicaciones que no son Python y bibliotecas C.


fuente