Configurando o código do Visual Studio

Visual Studio Code (VSCode) é um editor de código gratuito, executado nos sistemas operacionais macOS, Linux e Windows. Ele tem suporte a ferramentas elegantes que suportam desenvolvimento Python e C ++, depuração visual, integração com git e muitos outros recursos interessantes. Devido à facilidade de uso e gerenciamento de extensão, é um ótimo editor para o desenvolvimento do TensorFlow IO. No entanto, é necessário algum esforço para configurá-lo adequadamente. Como a configuração do VSCode é muito flexível, permite que os desenvolvedores compilem o projeto usando o bazel e executem o código em depuradores Python e C ++. A configuração da ferramenta básica pode ser diferente com base nos sistemas operacionais, mas a abordagem de configuração deve ser semelhante.

Extensões

Para instalar uma extensão, clique no ícone de visualização de extensões (Extensões) na barra lateral ou use o atalho Ctrl + Shift + X. Em seguida, pesquise a palavra-chave abaixo.

Compilando projetos

O TensorFlow IO é compilado usando o comando bazel build:

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

Veja projeto README arquivo para obter detalhes sobre como configurar o ambiente de desenvolvimento no Ubuntu. --compilation_mode dbg flag aqui indica que o binário produzido deve ter símbolos de depuração. Depois de compilar o projeto a partir da linha de comando, você também pode configurar o VSCode para poder invocar o mesmo comando.

Abrir Ver-> Comando Pallete (Ctrl + Shift + P) e começar a digitar: "Tarefas: Configurar Construir Tarefa". Se você está fazendo isso pela primeira vez, o editor irá sugerir a criação do arquivo tasks.json. Assim que tiver, cole o seguinte 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": []
       
}
   
]
}

Agora, você pode pressionar Ctrl + Shift + B, e VSCode vai usar o comando acima para construir o projeto. Ele usa sua própria janela de terminal, onde todos os links são clicáveis. Portanto, quando ocorre um erro de compilação, você abre o arquivo correspondente e navega até a linha clicando no link na janela do terminal.

Depurando projetos

Depuração de código Python é trivial, siga a documentação oficial para descobrir como VSCode configure para permitir que: https://code.visualstudio.com/docs/python/debugging

No entanto, a depuração do código C ++ requer GDB para ser instalado em seu sistema. Se você tem um bq_sample_read.py script python que usos tensorflow-io biblioteca e é normalmente executada de forma a seguir:

python3 bq_sample_read.py --gcp_project_id=...

Você pode executá-lo no GDB usando o seguinte:

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

Se o aplicativo falhar na fase de código C ++, você pode executar backtrace em GDB console para obter o stacktrace do erro.

VSCode também tem suporte para depurador GDB. Permite adicionar breakpoints, observar valores de variáveis ​​e percorrer o código passo a passo. Para adicionar imprensa configuração de depuração o ícone Debug Vista (Debug) no Sidebar, ou use o atalho Ctrl + Shift + D. Aqui, pressione a pequena seta para baixo ao lado do botão de reprodução e selecione "Adicionar configuração ...". Ele agora irá criar um launch.json arquivo, para que, por favor, adicione a seguinte configuração:

{
   
"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 tudo estiver configurado corretamente, você deve ser capaz de fazer Run -> Start Debugging (F5) ou Run -> Executar sem depuração (Ctrl + F5). Isso executará seu código no depurador:

Depurador VSCode

Para simplificar ainda mais a experiência de depuração, você pode configurar o GDB para ignorar as bibliotecas C ++ padrão. Isso permite que você ignore o código com o qual você não se importa. Para fazer isso, crie um ~/.gdbinit arquivo com o seguinte conteúdo:

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

Formatando arquivos

Você sempre pode reformatar ++ ou arquivo C Python por Right Click -> Document Format (Ctrl + Shift + I), mas VSCode usa uma convenção estilo diferente. Felizmente, é fácil mudar.

Para Python formatação, consulte https://donjayamanne.github.io/pythonVSCodeDocs/docs/formatting/

Para a formatação C ++, faça o seguinte:

  • Vá para Preferências -> Configurações
  • Procure por "C_Cpp.clang_format_fallbackStyle"
  • Modificar o file:setting.json arquivo diretamente adicionando o seguinte conteúdo
"C_Cpp.clang_format_fallbackStyle": "{ BasedOnStyle: Google}"