Configuración de código de Visual Studio

Visual Studio Code (VSCode) es un editor de código gratuito que se ejecuta en los sistemas operativos macOS, Linux y Windows. Tiene un elegante soporte de herramientas que admite el desarrollo de Python y C ++, depuración visual, integración con git y muchas más características interesantes. Debido a la facilidad de uso y la administración de extensiones, es un excelente editor para el desarrollo de TensorFlow IO. Sin embargo, es necesario un poco de esfuerzo para configurarlo correctamente. Dado que la configuración de VSCode es muy flexible, permite a los desarrolladores compilar proyectos usando bazel y ejecutar el código bajo depuradores Python y C ++. La configuración de la herramienta básica puede diferir según los sistemas operativos, pero el enfoque de configuración debería ser similar.

Extensiones

Para instalar una extensión, haga clic en el icono de vista de extensiones (Extensiones) en la barra lateral, o use el atajo Ctrl + Shift + X. Luego busque la palabra clave a continuación.

Recopilación de proyectos

TensorFlow IO se compila con el comando de compilación de bazel:

bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...

Ver proyecto README archivo para obtener detalles sobre cómo configurar el entorno de desarrollo de Ubuntu. --compilation_mode dbg flag aquí indica que el binario producido debe tener símbolos de depuración. Una vez que pueda compilar el proyecto desde la línea de comando, también puede configurar VSCode para poder invocar el mismo comando.

Abrir Ver-> Comando Pallete (Ctrl + Shift + P) y comienza a escribir: "Tareas: Configurar Construir tarea". Si está haciendo esto por primera vez, el editor sugerirá la creación de un archivo tasks.json. Una vez que lo tenga, pegue el siguiente json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build TF.IO (Debug)",
            "type": "shell",
            "command": "bazel build -s --verbose_failures --compilation_mode dbg //tensorflow_io/...",
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "problemMatcher": []
        }
    ]
}

Ahora, puede presionar Ctrl + Shift + B y VSCode va a utilizar el comando anterior para construir el proyecto. Utiliza su propia ventana de terminal, donde se puede hacer clic en todos los enlaces. Entonces, cuando ocurre un error de compilación, abre el archivo correspondiente y navega a la línea simplemente haciendo clic en el enlace en la ventana del terminal.

Proyectos de depuración

La depuración del código Python es trivial, siga documentación oficial a encontrar la manera de VSCode configurar para permitir que: https://code.visualstudio.com/docs/python/debugging

Sin embargo, la depuración del código C ++ requiere BGF a ser instalado en su sistema. Si usted tiene un bq_sample_read.py script en Python que los usos tensorflow-io biblioteca y normalmente se ejecuta de la manera siguiente:

python3 bq_sample_read.py --gcp_project_id=...

Puede ejecutarlo en GDB usando lo siguiente:

gdb -ex r --args python3 bq_sample_read.py --gcp_project_id=...

Si la aplicación se bloquea en la fase de código C ++, puede ejecutar backtrace en GDB consola para obtener el StackTrace del error.

VSCode también tiene soporte para depuradores GDB. Permite agregar puntos de interrupción, observar valores de variables y recorrer el código paso a paso. Para añadir prensa configuración de depuración en el icono de depuración Ver (depuración) en la barra lateral, o utilizar la combinación de teclas Ctrl + Shift + D. Aquí, presione la pequeña flecha hacia abajo junto al botón de reproducción y seleccione "Agregar configuración ...". Ahora se creará un launch.json archivo, a la que, por favor agregue la siguiente configuración:

{
    "name": "(gdb) Launch",
    "type": "cppdbg",
    "request": "launch",
    "program": "/usr/bin/python3",
    "args": ["bq_sample_read.py", "--gcp_project_id=..."],
    "stopAtEntry": false,
    "cwd": "${workspaceFolder}",
    "environment": [
        {
            /* path to your bazel-bin folder */
            "name": "TFIO_DATAPATH",
            "value": "/usr/local/google/home/io/bazel-bin"
        },
        {
            /* other env variables to use */
            "name": "GOOGLE_APPLICATION_CREDENTIALS",
            "value": "..."
        }
    ],
    "externalConsole": false,
    "MIMode": "gdb",
    "setupCommands": [
        {
            "description": "Enable pretty-printing for gdb",
            "text": "-enable-pretty-printing",
            "ignoreFailures": true
        }
    ]
}

Si todo está configurado correctamente, debería ser capaz de hacer Ejecutar -> Iniciar depuración (F5) o Ejecutar -> Ejecutar sin depurar (Ctrl + F5). Esto ejecutará su código en el depurador:

Depurador de VSCode

Para simplificar aún más la experiencia de depuración, puede configurar GDB para omitir las bibliotecas estándar de C ++. Esto le permite ignorar el código que no le importa. Para ello, cree un ~/.gdbinit archivo con el siguiente contenido:

skip -gfi /usr/include/c++/*/*/*
skip -gfi /usr/include/c++/*/*
skip -gfi /usr/include/c++/*

Formateo de archivos

Siempre se puede cambiar el formato o archivo de C ++ Python clic derecho -> formato de documento (Ctrl + Shift + I), pero VSCode utiliza una convención de estilo diferente. Afortunadamente, es fácil de cambiar.

Para formatear Python, ver https://donjayamanne.github.io/pythonVSCodeDocs/docs/formatting/

Para formatear C ++, haga lo siguiente:

  • Ir a Preferencias -> Configuración
  • Busque "C_Cpp.clang_format_fallbackStyle"
  • Modificar el file:setting.json archivo directamente añadiendo el siguiente contenido
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google}"