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
├─ __init__.py
├─ alan/
│ ├─ __init__.py
│ └─ alan1.py
├─ bob/
│ ├─ __init__.py
│ └─ bob1.py
└─ .vscode/
├─ settings.json
└─ launch.json
Observar que:
- En cada carpeta hay un fichero vacío __init__.py sin este fichero va a haber problemas para referenciar módulos entre distintas carpetas
- 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:
- El "current working directory cwd" es ${workspaceFolder}
- 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 |