Depuración remota de Python en un entorno externo. Ejemplo con Blender
- Publicado el
- • 2 min de lectura•--- vistas
A veces necesitas depurar código Python que se ejecuta en un entorno externo desde tu IDE local. En este tutorial cubriré la situación en la que un script de Python se ejecuta en Blender. Necesito colocar un punto de interrupción, inspeccionar los valores de las variables y recorrer el script paso a paso. Te mostraré dos métodos, para VSCode y PyCharm.
PyCharm
Este método es más simple y más automatizado — casi listo para usar de fábrica. Primero, tienes que añadir una configuración de ejecución especial y luego instalar la librería pydevd-pycharm. En el script que se ejecutará en Blender, añade el siguiente comando para conectarte al servidor de depuración. Las capturas de pantalla de abajo lo muestran todo, y se incluye el código que necesitas incrustar en tu script.

# Debug server
import logging
import sys
def connect_debug_server() -> None:
logging.debug(f"Python path used by Blender: {sys.executable}")
import pydevd_pycharm
pydevd_pycharm.settrace('localhost', port=2020)
Luego, inicia la configuración en PyCharm y ejecuta el script de Blender. El IDE se detendrá en el punto de interrupción.
VSCode
El método para VSCode es similar, salvo que usa la librería debugpy. A continuación tienes un script para conectarte al servidor de depuración y la configuración que debes añadir a launch.json. La secuencia de acciones es la siguiente: primero, ejecuta el script de Blender — esperará una conexión al servidor de depuración. Luego, inicia la configuración desde launch.json, y el IDE se detendrá en el punto de interrupción.
// Configuration for launch.json
{
"name": "Attach to Blender (debugpy)",
"type": "python",
"request": "attach",
"connect": {
"host": "127.0.0.1",
"port": 5678
},
"justMyCode": false
},
# Debug server
import logging
import sys
def connect_debug_server(host="127.0.0.1", port=5678, wait=False):
logging.debug(f"Blender Python: {sys.executable}")
try:
import debugpy
except Exception as e:
logging.error(f"debugpy not available: {e}")
return
try:
debugpy.listen((host, port)) # process listens on address:port
print(f"[debugpy] listening on {host}:{port}")
if wait:
print("[debugpy] waiting for VS Code to attach…")
debugpy.wait_for_client() # will stop here until attached
debugpy.breakpoint()
# optional: immediately catch the execution flow
except Exception as e:
logging.exception(f"debugpy.listen failed: {e}")


Disponible para colaboración por contrato
Estoy disponible para colaborar por contrato. Si tiene una idea de proyecto interesante, reserve una llamada por Calendly.
Agenda una llamada de 30 min