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?
Respuestas:
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.
fuente
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 usarvirtualenv
es que crea una instancia de Python autónoma dentro del directorio de entorno virtual que crea. Cuando se utiliza elpython
ypip
comandos dentro del virtualenvbin
directorio (que es lo que sucede cuandoactivate
el virtualenv), los paquetes de Python de instalar, ya sea conpython setup.py
opip install
ni siquieraeasy_install
se instalan a unasite-library
directorio 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 usarlosudo
(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-packages
opció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 quevirtualenv
fue 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
virtualenv
junto con administradores de paquetes de terceros como MacPorts, Homebrew o Fink (que incluyenvirtualenv
puertos / recetas / paquetes), pero dentro de un entorno virtual deberá administrar los paquetes locales de Python usted mismo, presumiblemente utilizando lospip
instalados dentro de cada entorno virtual. .virtualenv
no 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