viernes, 19 de junio de 2026

Visual Studio con pyhon. Consideraciones básicas (rutas, entorno virtual..)

1. Rutas a módulos

Supongamos que con VS creamos una carpeta llamada "softprop" que es la carpeta del proyecto. Y creamos 2 carpetas hijas "alan" y "bob" y dentro de cada una tenemos módulos.

Vamos a VS y elegimos la carpeta softprop.

Se nos queda pues esta estructura de ficheros de ejemplo:

softprop/
├─ __init__.py
├─ alan/
│  ├─ __init__.py
│  └─ alan1.py
├─ bob/
│  ├─ __init__.py
│  └─ bob1.py
└─ .vscode/
   ├─ settings.json
   └─ launch.json

Observar que:

  1. En cada carpeta hay un fichero vacío __init__.py sin este fichero va a haber problemas para referenciar módulos entre distintas carpetas
  2. Se ha creado la carpeta .vscode que tine 2 ficheros importantes settings.json y launch.json
Por ejemplo dentro de bob1.py queremos referenciar al módulo alan1.py y queremos hacerlo así, de marenera que se vea la ruta desde la carpeta del proyecto inclusive:

from softprop.alan import alan1

Para ello , el contenido de los ficheros settings.json y launch.json debe ser:

// ------------launch.json---------

{
    // 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 Debugger: Current File",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
             //opcions noves
            "cwd": "${workspaceFolder}",
            "env": {
                "PYTHONPATH": "${workspaceFolder}/.."
            }
            //fi d'opcions noves
        }
    ]
}




//-------------settings.json -----------

{
    "python.defaultInterpreterPath": "/home/eduard/MyPython/versio.03/venv_softprop/bin/python",
    "python.analysis.extraPaths": [
        "/home/eduard/MyPython/versio.03"
    ]
}


Debemos destacar en launch.json:

  1. El "current working directory cwd" es ${workspaceFolder}
  2. La variable de entorno que apunta a la carpeta padre "PYTHONPATH": "${workspaceFolder}/.."
De settings.json aparecen las rutas al entorno virtual de python


2. Entorno virtual

Vamos a ver dos formas de manejar entornos virtuales, la cásica y con "uv".
Clásica Con "uv"
Creación  python -m venv .myvenv uv venv .venv_softprop
Activar powershell
cmd widows
bash linux
.myvenv\Scripts\Activate.ps1
.
myvenv\Scripts\activate.bat
source .
myvenv/bin/activate
Igual que el modo cĺasico
Abandonar  deactivate Igual que el modo cĺasico
Instalar paquetes pip install requests
python -m pip install requests
uv pip install requests
Ejeutar módulos
Para ejecutarlos desde la
carpeta softprop, hay que
darle el path de la carpeta
padre de softprop  en una 
variable de entorno
$env:PYTHONPATH=".."
python -m softprop.alan.alan1
PYTHONPATH=..
python -m softprop.alan.alan1  


o también

cd ..
python -m softprop.alan.alan1