3
respostas

Criando um ambiente de trabalho Data Science

Olá. Sou iniciante na área de Ciência de Dados, conforme eu fui fazendo os cursos do Alura e pesquisando coisas novas na internet e acabei me deparando com o conceito de ambiente de trabalho para Data Science. Pesquisando sobre o tema na internet há infinitas opções, como sou iniciante eu fiquei meio perdido. Mas há algumas ferramentas que me chamaram à atenção. Me corrijam se eu estiver errado, mas parece que o mais completo dos editores de código é o VsCode? Meu primeiro contato com esta ferramenta foi horrível, mas estou disposto à estudar para dominar este editor de código caso seja o que realmente falam dele. Outra ferramenta bem interessante é o Docker, ao iniciar este curso procurei vídeos para instalar VirtualBox como é recomendado no curso. Porém em alguns deles, afirmam uma maior vantagem no caso de Data Science a utilização de Docker. O Anaconda também é interessante já que em um curso anterior de engenharia de dados eu tentava, com o auxílio de professores, criar um ambiente virtual e à instalação do pandas no VsCode, mas ninguém estava entendendo os erros que dava, cheguei a formatar a maquina para ver se funcionava mas só com o Anaconda mesmo que consigo criar o ambiente virtual (até hoje numa aula do Alura, tentei seguir o que o professor realizou mas não consegui). O Anaconda é suficiente para sanar a criação de ambientes virtuais e as bibliotecas ou há um nível que esta ferramenta se torna insuficiente? Então eu penso em criar um ambiente de trabalho com estas ferramentas: O Docker com WSL-2, o VsCode (que parece que se comunica bem com o Docker) e o Anaconda para bibliotecas e ambientes virtuais. Porém na internet me perco frente a inúmeras opções, por exemplo, vejo vídeos sobre usar o Docker com o VsCode, porém para desenvolvedores (serve para Ciência de Dados também?). Gostaria de um help para a criação deste ambiente de trabalho, bem como sugestões, não sei se é o ambiente de trabalho mais ideal....Ah e Quando usamos o Docker, codamos também em Linux dentro do VsCode?

3 respostas

Olá Marcel, vamos por partes.

Em relação ao IDE, eu uso o VS Code, já utilizei o Atom, mas sem dúvida (para mim) o VS Code é bem melhor. As extensões disponíveis, o fato de ser open source etc. Não tive experiência com outras ferramentas, portanto eu não saberia dizer.

Em relação ao ambiente de desenvolvimento. Sem dúvida é uma boa prática separar os ambientes. No caso de Data Science, uma ferramenta muito indicada, inclusive eu uso, é o Jupiter Notebook, pois torna a visualização de dados bem satisfatória.

Como ambiente de desenvolvimento, eu uso o Docker, pois além de separar o ambiente de desenvolvimento, o Jupiter Notebook inicia com a inicialização da máquina, para isso uso o seguinte Dockerfile e docker-compose:

requirements.txt

jupyterlab==3.0.16

Dockerfile:

FROM ubuntu:18.04

WORKDIR /notebook

RUN apt-get update -y
RUN apt-get install -y python3-dev python3-pip build-essential

RUN pip3 install --upgrade pip
COPY ./requirements.txt requirements.txt

RUN pip install -r requirements.txt

docker-compose

version: '3'

services:
  jupyter:
    image: 'jupyter/datascience-notebook:latest'
    ports: 
      - '8888:8888'
    volumes:
      - ./data:/home/jovyan/work
    container_name: jupyter
    environment:
      JUPYTER_ENABLE_LAB: 'yes'

Ahh, detalhe, eu "instalei" uma janela do chrome com o Jupiter Notebook, assim o tenho a um click quando eu preciso. Mais um detalhe, na verdade eu uso o Jupiter Lab, uma opção um pouco mais avançada que o Notebook.

Obrigado pela resposta Anderson :)

Eu sou bem iniciante então não entendi tudo o que vc disse hahahaha.

Por que usar o Vscode e o Jupyter Notebook? (Não daria para usar apenas o VsCode?)

O que é um ambiente de desenvolvimento?

Hoje eu consegui criar meu primeiro arquivo dentro de um ambiente virtual, que está num container Docker, este criado com uma imagem Anaconda (baixado pelo hub docker) rodando no VsCode. Fiz certo?

Além disso me surgiu outra dúvida, como uso uma imagem Anaconda e não o Anaconda para Windows, eu acabo não tendo aquele painel onde posso criar ambientes virtuais, rodar Jupyter etc... Me lembro que se eu precisasse instalar uma nova biblioteca eu usava aquele menu dos ambientes virtuais, agora como se faz isso neste caso (imagem Anaconda num container)? Tem como eu checar quais bibliotecas eu tenho instalado no meu arquivo?

Ah e vi que vc falo de rodar o Jupyter no docker, tem como usar pela imagem Anaconda? Se tiver, qual a diferença?

Desde já agradeço pela atenção.

Olá Marcel,

Vamos tentar melhorar a resposta.

Sim, é possível usar somente o VS Code, entretanto, ao se trabalhar com dados, o Jupyter é interessante tanto para manipular as rotinas (execução dos códigos), como para visualizar os dados.

Ambiente de desenvolvimento vs ambiente de produção. O primeiro é o ambiente de desenvolvimento do código fonte, enquanto que o ambiente de produção é o ambiente na qual o usuário final tem acesso, um web app por exemplo.

Parabéns, você usando o Docker container. Sim, o VS Code tem algumas extensões que facilitam o desenvolvimento com Docker.

Eu faço o seguinte para usar o Jupyter em um container.

Deixo a porta 8888 exposta e crio um volume, neste volume fica os scripts que funcionam no container.

Quanto a diferença, eu particularmente prefiro a imagem somente o Jupyter Lab porque é mais "enxuto", imagino que a imagem do Anaconda tenha muita mais pacotes instalados.

À disposição.

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software