Instalar Python 3 y entornos virtuales con venv
Python viene preinstalado en casi cualquier VPS Linux moderno, pero la versión depende de la distribución. Antes de arrancar cualquier proyecto serio, debes saber qué versión tienes, cómo instalar otra si la necesitas y, sobre todo, cómo aislar las dependencias de cada aplicación usando entornos virtuales.
Comprobar la versión instalada
En la terminal de tu VPS ejecuta:
python3 --version
Si la versión es 3.8 o mayor, ya estás en buen terreno para la mayoría de frameworks modernos. En Debian 12 o Ubuntu 22.04 vas a ver típicamente 3.10 o 3.11. Si necesitas una versión más reciente (por ejemplo, 3.12), puedes añadir el repositorio deadsnakes en Ubuntu o compilarla desde el código fuente.
Paquetes necesarios
Instala el paquete de soporte para entornos virtuales y las herramientas de desarrollo:
sudo apt update sudo apt install python3 python3-venv python3-pip python3-dev build-essential
El paquete python3-dev incluye los headers necesarios cuando pip tiene que compilar librerías con código en C (muy común con paquetes como Pillow, psycopg2 o lxml).
Por qué NO debes usar sudo pip
Una trampa clásica en la que caen muchos: instalar paquetes con sudo pip install paquete. Nunca lo hagas. Ensucia los archivos del sistema, puede romper herramientas del propio Linux (que también dependen de Python) y mezcla versiones de librerías entre proyectos distintos, provocando los famosos conflictos de dependencias.
La solución correcta es crear un entorno virtual para cada proyecto.
Crear un entorno virtual
Ve al directorio donde vas a guardar tu proyecto y ejecuta:
cd /var/www/miproyecto python3 -m venv venv
El segundo argumento (venv) es el nombre de la carpeta donde se creará el entorno. Se usa esta convención porque queda claro qué es, pero puedes llamarlo como quieras. Dentro encontrarás copias del intérprete de Python, sus binarios y su propia carpeta site-packages donde se instalarán los paquetes aislados del sistema.
Activar y desactivar
Para usar el entorno:
source venv/bin/activate
Notarás que tu prompt cambia y muestra algo como (venv) al inicio. A partir de ese momento, cualquier python o pip que ejecutes usa los binarios del entorno y no los del sistema. Para salir del entorno basta:
deactivate
Instalar dependencias
Con el entorno activo, instala lo que necesites:
pip install flask pip install django gunicorn psycopg2-binary
Para congelar el estado actual de dependencias en un archivo:
pip freeze > requirements.txt
Este archivo describe las versiones exactas de cada paquete instalado. Cuando muevas el proyecto a otro servidor, solo tendrás que recrear el venv y correr:
pip install -r requirements.txt
De esta forma garantizas que el entorno de producción sea idéntico al de desarrollo y evitas el clásico "pero en mi máquina funcionaba".
Recomendación final
Nunca subas la carpeta venv/ a tu repositorio Git. Agrégala al .gitignore. Lo que sí debes versionar es el requirements.txt, para que cualquier persona pueda reproducir el entorno en segundos.