481 palabras
2 minutos
uv vs pyenv vs pipx vs conda vs python3 -m venv
Tabla comparativa
| Herramienta | Función Principal | Gestiona Versiones Python | Gestiona Paquetes No-Python | Velocidad | Uso Recomendado |
|---|---|---|---|---|---|
| python3 -m venv | Aislamiento básico | No (usa la del sistema) | No | Lenta | Sistemas restringidos o scripts simples. |
| pyenv | Gestión de versiones | Sí | No | N/A | Cambiar versiones de Python de forma global. |
| pipx | Instalación de Apps | No | No | Media | Instalar herramientas CLI |
| conda | Entornos científicos | Sí | Sí | Muy Lenta | Ciencia de datos (Legacy/Tradicional). |
| uv | Todo en uno (Python) | Sí | No | Extrema (Rust) | Desarrollo de software moderno y rápido. |
| pixi | Todo en uno (Multi-lenguaje) | Sí | Sí | Alta (Rust) | Proyectos con dependencias C++, CUDA o R. |
Ventajas
- Aislamiento de dependencias: Evitan conflictos entre las bibliotecas.
- Limpieza del sistema: Los paquetes se instalan localmente en la carpeta del entorno, manteniendo limpia la instalación global de Python.
- Portabilidad y replicabilidad: Facilitan compartir tu proyecto. Puedes generar un archivo de requisitos (
requirements.txt) para que otros desarrolladores puedan replicar exactamente el mismo entorno de trabajo.
1. UV
Esta es la opción recomendada
Instalación de UV
curl -LsSf https://astral.sh/uv/install.sh | sh
# source $HOME/.local/bin/env (sh, bash, zsh) # source $HOME/.local/bin/env.fish (fish)Ejemplo Frida y Objection
# Creamos una carpeta para guardar el entornomkdir frida_16.5.2_uv && cd frida_16.5.2_uv
# Iniciamos el entornouv venv
# Activamos el entornosource .venv/bin/activate
# Instalamos las herramientas que necesitamosuv pip install frida==16.5.2 frida-tools objection==1.11.0
# Corroboramos que todo funcionefrida --version# 16.5.2
# Ejemplo un script# frida -U -f com.app.app -l script.js
# Salimos de nuestro entornodeactivateEjemplo xcat con una versión especifica de Python
# Creamos una carpeta para guardar el entornomkdir xcat_uv && cd xcat_uv
# Iniciamos el entornouv venv --python 3.10
# Activamos el entornosource .venv/bin/activate
# Instalamos las herramientas que necesitamosuv pip install xcat
# Corroboramos que todo funcionexcat --version
# Salimos de nuestro entornodeactivateSaber que hay instalado en el entorno virtual
# Desde la carpeta en que vive el entornouv pip treeActualizaciones
uv self updateCorrer en un entorno temporal
- Por ejemplo un script de Frida
VERSION=16.5.2uv run --with frida==16.5.2 --with frida-tools --with objection==1.11.0 frida -U -f com.app.app -l script.js2. Python Virtual Environment (venv)
(MEJOR USA UV) Instalación de python3-venv
# sudo apt install python3-venv python3-pip -y(MEJOR USA UV) Ejemplo Frida y Objection
# Creamos una carpeta para guardar el entorno# mkdir frida_16.5.2_venv && cd frida_16.5.2_venv
# Iniciamos el entorno# python -m venv .venv
# Activamos el entorno# source .venv/bin/activate
# Instalamos las herramientas que necesitamos# pip install frida==16.5.2 frida-tools objection==1.11.0
# Corroboramos que todo funcione# frida --version# 16.5.2
# (MEJOR USA UV) Ejemplo un script# frida -U -f com.app.app -l script.js
# Salimos de nuestro entorno# deactivateNota final¡Gracias por terminar de leer este artículo! uwur
— El Capitán
¿Tienes alguna duda o te gustaría comentar algo sobre este artículo?
Puedes encontrarme en:
uv vs pyenv vs pipx vs conda vs python3 -m venv
https://elcaza.github.io/posts/sysadmin/uv_pyenv_pipx_conda/