Configurazione del codice di Visual Studio

Visual Studio Code (VSCode) è un editor di codice gratuito, che funziona sui sistemi operativi macOS, Linux e Windows. Ha un elegante supporto per strumenti che supporta lo sviluppo Python e C++, debug visivo, integrazione con Git e molte altre funzionalità interessanti. Grazie alla facilità d'uso e alla gestione delle estensioni, è un ottimo editor per lo sviluppo di TensorFlow IO. Tuttavia, è necessario un certo sforzo per configurarlo correttamente. Poiché la configurazione di VSCode è molto flessibile, consente agli sviluppatori di compilare il progetto utilizzando bazel ed eseguire il codice nei debugger Python e C++. La configurazione dello strumento di base potrebbe differire in base ai sistemi operativi, ma l'approccio alla configurazione dovrebbe essere simile.

Estensioni

Per installare un'estensione, fai clic sull'icona di visualizzazione delle estensioni (Estensioni) nella barra laterale o utilizza la scorciatoia Ctrl+Maiusc+X. Quindi cerca la parola chiave di seguito.

  • C/C++ - Estensione C++ ufficiale di Microsoft
  • Python : estensione Python ufficiale di Microsoft
  • Python Extension Pack : un'altra utile estensione per lo sviluppo Python

Compilazione di progetti

TensorFlow IO viene compilato utilizzando il comando bazel build:

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

Vedi il file README del progetto per i dettagli su come configurare l'ambiente di sviluppo in Ubuntu. --compilation_mode dbg flag qui indica che il binario prodotto dovrebbe avere simboli di debug. Dopo aver compilato il progetto dalla riga di comando, puoi anche configurare VSCode per poter invocare lo stesso comando.

Apri Visualizza->Pallet comandi ( Ctrl+Shift+P ) e inizia a digitare: "Attività: Configura attività di creazione". Se lo fai per la prima volta, l'editor suggerirà di creare il file task.json. Una volta ottenuto, incolla il seguente 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": []
        }
    ]
}

Ora puoi premere Ctrl+Shift+B e VSCode utilizzerà il comando sopra per creare il progetto. Utilizza la propria finestra terminale, dove tutti i collegamenti sono selezionabili. Pertanto, quando si verifica un errore di compilazione, apri il file corrispondente e vai alla riga semplicemente facendo clic sul collegamento nella finestra del terminale.

Debug di progetti

Il debug del codice Python è banale, segui la documentazione ufficiale per capire come configurare VSCode per abilitarlo: https://code.visualstudio.com/docs/python/debugging

Tuttavia, il debug del codice C++ richiede che GDB sia installato sul tuo sistema. Se disponi di uno script Python bq_sample_read.py che utilizza la libreria tensorflow-io e viene normalmente eseguito nel modo seguente:

python3 bq_sample_read.py --gcp_project_id=...

Puoi eseguirlo sotto GDB usando quanto segue:

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

Se l'applicazione si arresta in modo anomalo nella fase di codice C++, puoi eseguire backtrace nella console GDB per ottenere lo stacktrace dell'errore.

VSCode ha anche il supporto del debugger GDB. Consente di aggiungere punti di interruzione, osservare i valori delle variabili e scorrere il codice passo dopo passo. Per aggiungere la configurazione di debug premere l'icona Visualizzazione debug (Debug) sulla barra laterale o utilizzare la scorciatoia Ctrl+Shift+D . Qui, premi la piccola freccia giù accanto al pulsante di riproduzione e seleziona "Aggiungi configurazione...". Ora creerà un file launch.json , al quale aggiungere la seguente configurazione:

{
    "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
        }
    ]
}

Se tutto è configurato correttamente, dovresti essere in grado di eseguire Esegui -> Avvia debug ( F5 ) o Esegui -> Esegui senza debug ( Ctrl + F5 ). Questo eseguirà il tuo codice nel debugger:

Debugger VSCode

Per semplificare ulteriormente l'esperienza di debug, puoi configurare GDB per ignorare le librerie C++ standard. Ciò ti consente di ignorare il codice che non ti interessa. Per fare ciò, crea un file ~/.gdbinit con il seguente contenuto:

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

Formattazione dei file

Puoi sempre riformattare il file C++ o Python facendo clic con il tasto destro -> Formatta documento ( Ctrl + Maiusc + I ), ma VSCode utilizza una convenzione di stile diversa. Fortunatamente, è facile cambiare.

Per la formattazione Python, vedere https://donjayamanne.github.io/pythonVSCodeDocs/docs/formatting/

Per la formattazione C++, procedi come segue:

  • Vai a Preferenze -> Impostazioni
  • Cerca "C_Cpp.clang_format_fallbackStyle"
  • Modificare direttamente il file file:setting.json aggiungendo il seguente contenuto
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google}"