📌 Requisitos
- Poseer WSL2 instalado preferiblemente la distribución Ubuntu LTS ➡, al momento de la escritura de este artículo es la 20.04. Esta guía fue verificada contra la nueva versión LTS 22.04.
- Visual Studio Code instalado en Windows con la extensión Remote – WSL Extension ➡.
- Ingresa a tu distribución WSL y actualiza los repositorios e instalar las últimas actualizaciones.
sudo apt update
sudo apt upgrade -y
- La distribución de Ubuntu ya tiene Python instalado, por lo que solo es necesario instalar pip.
sudo apt install -y python3-pip
- Asegurate de tener instalado Git.
sudo apt install -y git
🐍 Configuración de ambiente básico
venv
Venv es una herramienta para crear ambientes virtuales aislados de Python, estos permiten tener versiones de paquetes específicos para uno o varios proyectos en un ambiente separado.
Tomo como referencia el video de YouTube de Corey Schafer titulado Tutorial de Python: VENV (Mac & Linux) – Cómo usar ambientes virtuales con el módulo incorporado venv.
Personalmente, prefiero crear el ambiente virtual dentro de la carpeta de mi proyecto y asignarle el nombre .venv
Ventajas:
- Ambiente aislado para cada proyecto.
- No es necesario recordar que ambiente posee que paquete o versión.
- Facilita la detección del intérprete en Visual Studio Code.
Desventajas:
- Se debe de repetir el proceso en cada proyecto.
Para poder conocer cómo es que funciona el uso de venv, ingresa al directorio Home y crea una nueva carpeta llamada hello-world
, esta será la carpeta del proyecto.
cd ~
mkdir hello-world
Crea un nuevo ambiente virtual, en este ejemplo se creará el ambiente llamado .venv
python3 -m venv hello-world/.venv
Activa el ambiente virtual recién creado utilizando el comando source [ruta_ambiente]/bin/activate
source hello-world/.venv/bin/activate
De haber realizado los pasos anteriores de manera satisfactoria, en la línea de comandos aparecerá entre paréntesis el nombre de tu ambiente virtual.
Como referencia, para desactivar el ambiente virtual utiliza el comando deactivate.
deactivate
Algo que debes de tomar en cuenta al crear un nuevo ambiente virtual es actualizar pip
. Cuando el ambiente virtual se encuentra activo, puedes utilizar los comandos python
y pip
en lugar de python3
y pip3
.
python -m pip install --upgrade pip
Si tienes dudas, en cualquier momento puedes comprobar que se está utilizando la versión de python
y de pip
de tu ambiente virtual utilizando el comando which
.
which python; which pip
/home/hola/hello-world/.venv/bin/python
/home/hola/hello-world/.venv/bin/pip
Git
La configuración de git es bastante sencilla, básicamente debes asignar un usuario y correo electrónico, los cuales serán asociados a tus cambios en el historial de versiones.
git config --global user.name "nombre de usuario"
git config --global user.email "tu@correo.com"
Puedes verificar tu configuración con el siguiente comando
git config --list
.gitignore
El archivo .gitignore
actúa como un archivo de configuración, el cual le indica a Git
que excluya ciertos tipos de archivos o carpetas en el control de versiones. Uno de estos directorios debería ser el correspondiente al ambiente virtual creado con el comando venv
.
En GitHub existe un repositorio ➡ de archivos .gitignore
en donde la configuración correspondiente a Python ➡ toma en consideración diversos nombres de carpetas estándar para ambientes virtuales, entre ellos la carpeta .venv
.
Manualmente, puedes descargar el archivo con el siguiente comando.
curl https://raw.githubusercontent.com/github/gitignore/master/Python.gitignore -o .gitignore
En caso prefieras usar wget
usa el siguiente comando en vez.
wget -O .gitignore https://raw.githubusercontent.com/github/gitignore/master/Python.gitignore
Existe una extensión de Visual Studio Code llamada gitignore por CodeZombie ➡ para poder descargar el archivo .gitignore
de algún lenguaje que se encuentre en el repositorio de GitHub, esto con el comando Ctrl+Shift+P
y luego empezar a escribir Add gitignore
.
Repositorio local
Procede a inicializar el repositorio de Git
git init
Crea un archivo README.md
en la carpeta raíz, esta es una buena práctica en donde podremos indicar un resumen del proyecto, documentar requerimientos, colocar una guía de instalación, indicar la forma de uso o colocar referencias.
touch README.md
Por el momento la estructura de tu proyecto será similar a la siguiente:
~/hello-world/
+--.git\ (Git)
+--.venv\ (Entorno virtual de Python)
+--.gitignore
+--README.md
Manualmente, crea una carpeta para el nombre del paquete, en este caso tendrá el mismo nombre que el proyecto, pero el nombre utilizará guion bajo en lugar de guion.
mkdir hello_world
Crea un archivo __main__.py
el cual tendrá la lógica del paquete en caso de que este llegue a extenderse.
touch hello_world/__main__.py
La nueva estructura del proyecto será similar a la siguiente:
~/hello-world/
+--.git\ (Git)
+--.venv\ (Entorno virtual de Python)
+--hello_world\ (Paquete)
+--hello_world\__main__.py (Punto de entrada del paquete)
+--.gitignore
+--README.md
Crea tu primer commit
, el cual corresponderá al inicio del proyecto. En mi caso me es de mucho agrado utilizar la convención Gitmoji ➡, por lo que esta será la utilizada para el mensaje del commit
inicial.
Procede a agregar los archivos .gitignore
, README.md
y __main__.py
.
git add .
Agrega un mensaje al confirmar el commit
.
git commit -m ":tada:" -m "Begin a project."
Visual Studio Code
Con el ambiente virtual activado, procede a ejecutar Visual Studio Code de tal forma que el editor abra el contenido de la carpeta de tu proyecto.
code .
Se abrirá el editor Visual Studio Code mostrando el contenido de la carpeta del proyecto.
Instalar extensiones
Instala el pack de extensiones Python ➡ de Microsoft
asegurandote de instalar dentro de WSL2. La instrucción dirá algo simiar a Install in WSL: Ubuntu-20.04
o Install in WSL: Ubuntu-22.04
, por ejemplo.
Una vez terminada la instalación, cierra Visual Studio Code y ejecuta nuevamente el comando.
code .
Se abrirá Visual Studio Code, al momento que abras el archivo __main__.py
en el editor, Visual Studio Code tomará como ambiente virtual la carpeta .venv
. Puedes verificar que entorno virtual se encuentra en uso y cambiarlo de acuerdo a tus necesidades ejecutando Ctrl+Shift+P
y escribe Python: Select Interpreter
. Se mostrará una lista desplegable e indicará el ambiente que actualmente se encuentra en uso, adicionalmente mostrará que el ambiente recomendado corresponde a la carpeta .venv
.
🐍 Comprobación del ambiente
Abre el archivo __main__.py
desde el Explorador de Visual Studio Code e ingresa el siguiente código.
print("Hello World!")
Ejecuta el siguiente comando para ejecutar el código.
python -m hello_world
Podrás observar en consola el mensaje.
Hello World!
🐍 Configura Visual Studio Code para que puedas Debugear
Al ser un editor de código y no un IDE, Visual Studio Code necesita de un archivo de configuración para habilitar la depuración.
Ejecuta Ctrl+Shift+P
y escribe Debug: Add Configuration
. Te mostrará una lista desplegable con distintas opciones posibles de proyectos, en esta ocasión escoge la opción Module
.
Visual Studio Code solicitará el nombre del módulo, en este caso ingresa el texto hello_world
. Se creará un archivo lauch.json
dentro de una nueva carpeta .vscode
con un contenido similar al siguiente.
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"name": "Python: Module",
"type": "python",
"request": "launch",
"module": "hello_world",
"justMyCode": true
}
]
}
Posicionate en la primera línea del archivo __main__.py
y presiona la techa F9
para agregar un punto de Debug, esto detendrá la ejecución en este punto al momento de iniciar la depuración.
Presiona F5
para iniciar la depuración del programa.
🎁 Bonus: Agrega tus cambios a Git
Debido a que se introdujeron dos cambios distintos, en el proyecto, es necesario crear dos commits
.
git add hello_world/__main__.py
git commit -m ":sparkles: Hello World module"
git add .vscode/lauch.json
git commit -m ":wrench: Debug config for Visual Studio Code"
Felicidades, has logrado configurar un ambiente de Python en WSL2 🎉.
Foto de David Clode en Unsplash