Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Cade o ambiente virtual?

Durante a primeira parte do curso o professor ensinou a criar ambientes virtuais para trabalhar. Ao fim da primeira parte, entretanto, ele exclui o ambiente virtual criado e não volta a criar no inicio deste video e portanto ele passa a utilizar o ambiente base (root) para trabalhar com a aplicação. Porque isso? Não deverias criar um ambiente virtual para trabalhar com esse projeto?

Além disso fiquei com uma duvida em relação aos arquivos que ele importa para a pasta do projeto no jupiter. Não tem como trabalhar com arquivos que estão em diretorios do usuario?

3 respostas

Olá Ricardo,

O instrutor mostra a parte de criação e utilização de ambientes virtuais porque é uma parte bem importante de se utilizar trabalhando com Data Science, mas acaba não sendo interessante se preocupar com a utilização de um ambiente para seguir a aula, isso poderia desviar um pouco do foco do curso que é baseado na biblioteca pandas.

O uso de um ambiente específico serve mais para um projeto importante de longo prazo ou que pode ser necessário o uso depois de muito tempo, ou para a importação/utilização de um projeto já pronto. Isso porque nessa área trabalhamos com muitas bibliotecas diferentes, e todas elas estão sempre mudando e recebendo novas versões, assim como a linguagem, então utilizando um ambiente estamos garantindo o funcionamento do projeto por muito tempo e facilitando o compartilhamento.


Sobre os arquivos que você falou seria os arquivos de dados (os arquivos .csv nesse caso)?

Se for isso mesmo, você pode sim colocar em uma pasta diferente, mas é apenas mais conveniente colocar os arquivos próximos do projeto, assim você evita ter que colocar caminhos como abaixo sempre que for importar algum dado:

# Exemplo 1
pd.read_csv('C:/Users/Lucas/dados/aluguel.csv')
# Exemplo 2
pd.read_csv('../../../dados/aluguel.csv')

Espero ter ajudado, qualquer dúvida é só falar!

Obrigado Lucas, ajudou sim, mas para mim ainda não esta totalmente clara essa historia de ambientes virtuais. Eu nunca trabalhei com programação e meu primeiro contato com o Python foi na "Formação Python" da alura.

Durante a formação python nos usavamos o PyCharm e com ele sempre criavamos novos ambientes virtuais para cada projeto atraves da funcionalidade "Virtualenv" e o interpretador Python. Na verdade eu nunca entendi muito bem o que esse ambiente virtual significava e quais eram as suas limitações. Isso é uma pratica mais comum, por acaso, para desenvolvedores Python?

Com relação as bibliotecas, se eu criar um novo ambiente pelo conda, ele vai automaticamente baixar todas as bibliotecas do Anaconda como a Pandas, Numpy etc?

Se eu quiser continuar usando o PyCharm e o Virtualenv, como eu faço para ter acesso a essas bibliotecas todas? Tenho que baixar manualmente?

Ainda faz sentido continuar usando o PyCharm para DataScience, ou é melhor usar o Jupiter e/ou Spider que ja estão dentro do Anaconda Navigator?

solução!

Os ambientes virtuais podem ajudar em projetos de programação no geral ou em projetos mais focados em DataScience. Pelo que eu sei o PyCharm pede pra que você sempre selecione um ambiente pra cada projeto, mas não precisa ser um novo para cada, pode ser um mesmo ambiente para todos os projetos (obs: não utilizo muito o PyCharm, então posso estar errado).

Sobre a importância/motivo da utilização de ambientes virtuais, imagine que você está criando um código para sua empresa, e no seu computador tem o pandas versão 0.25.3, então depois de pronto você chega no computador da empresa e quando vai executar aparece uma mensagem de erro, aí depois de pesquisar você descobre que o problema era a versão do pandas que é 0.22.1 no computador da empresa e você utilizou uma função que não existe nessa versão. Você então vai atualizar o pandas desse computador para executar o seu programa, e durante a atualização descobre que para ter o pandas 0.25.3 já tem uma dependência de outra biblioteca que o pandas precisa, então já tem mais uma biblioteca para atualizar, e assim por diante.

Esse é um exemplo bem específico, mas utilizando um ambiente virtual você pode chegar no outro computador e recriar exatamente o mesmo ambiente que você utilizou durante o desenvolvimento e evitar esses conflitos. E esses conflitos são bem mais comuns do que parece de início, e muitas vezes é complicado de diagnosticar.

Nesse link do fórum o Ronald citou umas vantagens legais de utilizar ambientes virtuais.

Com relação as bibliotecas, se eu criar um novo ambiente pelo conda, ele vai automaticamente baixar todas as bibliotecas do Anaconda como a Pandas, Numpy etc?

Quando você cria um ambiente já é feito o download e a instalação de todas as bibliotecas que você definiu e suas dependências, já está pronto para usar.

Se eu quiser continuar usando o PyCharm e o Virtualenv, como eu faço para ter acesso a essas bibliotecas todas? Tenho que baixar manualmente?

Eu acredito que você pode definir para o PyCharm utilizar o ambiente base do anaconda, com muitas das bibliotecas importantes já instaladas.

Ainda faz sentido continuar usando o PyCharm para DataScience, ou é melhor usar o Jupiter e/ou Spider que ja estão dentro do Anaconda Navigator?

Cada ferramenta é feita para um cenário de uso, então além de baseado na sua preferência você pode escolher a ferramenta baseado na sua finalidade principal.

O Jupyter notebook é ideal para fazer a limpeza e uma análise inicial dos dados quando você está conhecendo os dados. O funcionamento de execução célula a célula é bom quando você ainda não sabe os passos que vai ter que seguir.

Conhecendo agora a estrutura padrão dos dados você pode então utilizar o PyCharm para criar um código que vai ser utilizado, por exemplo, todo trimestre quando chegar os dados financeiros da empresa. O PyCharm vai ser ideal para fazer um programa para algo já planejado, o mesmo caso de uso de outros editores como o vscode ou o sublime.

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