Ao trabalhar em projetos Python, você provavelmente deve usar um **ambiente virtual** (ou um mecanismo similar) para isolar os pacotes que você instala para cada projeto.
Ao trabalhar em projetos Python, você provavelmente deve usar um **ambiente virtual** (ou um mecanismo similar) para isolar os pacotes que você instala para cada projeto.
@ -26,7 +26,7 @@ Se você estiver pronto para adotar uma **ferramenta que gerencia tudo** para vo
///
///
## Criar um Projeto
## Criar um Projeto { #create-a-project }
Primeiro, crie um diretório para seu projeto.
Primeiro, crie um diretório para seu projeto.
@ -51,7 +51,7 @@ $ cd awesome-project
</div>
</div>
## Crie um ambiente virtual
## Crie um ambiente virtual { #create-a-virtual-environment }
Ao começar a trabalhar em um projeto Python **pela primeira vez**, crie um ambiente virtual **<abbrtitle="existem outras opções, esta é uma diretriz simples">dentro do seu projeto</abbr>**.
Ao começar a trabalhar em um projeto Python **pela primeira vez**, crie um ambiente virtual **<abbrtitle="existem outras opções, esta é uma diretriz simples">dentro do seu projeto</abbr>**.
@ -114,7 +114,7 @@ Você pode criar o ambiente virtual em um diretório diferente, mas há uma conv
///
///
## Ative o ambiente virtual
## Ative o ambiente virtual { #activate-the-virtual-environment }
Ative o novo ambiente virtual para que qualquer comando Python que você executar ou pacote que você instalar o utilize.
Ative o novo ambiente virtual para que qualquer comando Python que você executar ou pacote que você instalar o utilize.
Toda vez que você instalar um **novo pacote** naquele ambiente, **ative** o ambiente novamente.
Toda vez que você instalar um **novo pacote** naquele ambiente, **ative** o ambiente novamente.
Isso garante que, se você usar um **programa de terminal (<abbr title="interface de linha de comando">CLI</abbr>)** instalado por esse pacote, você usará aquele do seu ambiente virtual e não qualquer outro que possa ser instalado globalmente, provavelmente com uma versão diferente do que você precisa.
Isso garante que, se você usar um **programa de terminal (<abbr title="Command Line Interface – Interface de Linha de Comando">CLI</abbr>)** instalado por esse pacote, você usará aquele do seu ambiente virtual e não qualquer outro que possa ser instalado globalmente, provavelmente com uma versão diferente do que você precisa.
///
///
## Verifique se o ambiente virtual está ativo
## Verifique se o ambiente virtual está ativo { #check-the-virtual-environment-is-active }
Verifique se o ambiente virtual está ativo (o comando anterior funcionou).
Verifique se o ambiente virtual está ativo (o comando anterior funcionou).
/// tip | Dica
/// tip | Dica
Isso é **opcional**, mas é uma boa maneira de **verificar** se tudo está funcionando conforme o esperado e se você está usando o ambiente virtual pretendido.
Isso é **opcional**, mas é uma boa maneira de **verificar** se tudo está funcionando conforme o esperado e se você está usando o ambiente virtual intendido.
///
///
@ -212,7 +212,7 @@ Se ele mostrar o binário `python` em `.venv\Scripts\python`, dentro do seu proj
### Instalar a partir de `requirements.txt` { #install-from-requirements-txt }
Se você tiver um `requirements.txt`, agora poderá usá-lo para instalar seus pacotes.
Se você tiver um `requirements.txt`, agora poderá usá-lo para instalar seus pacotes.
@ -376,7 +376,7 @@ pydantic==2.8.0
///
///
## Execute seu programa
## Execute seu programa { #run-your-program }
Depois de ativar o ambiente virtual, você pode executar seu programa, e ele usará o Python dentro do seu ambiente virtual com os pacotes que você instalou lá.
Depois de ativar o ambiente virtual, você pode executar seu programa, e ele usará o Python dentro do seu ambiente virtual com os pacotes que você instalou lá.
@ -390,9 +390,9 @@ Hello World
</div>
</div>
## Configure seu editor
## Configure seu editor { #configure-your-editor }
Você provavelmente usaria um editor. Certifique-se de configurá-lo para usar o mesmo ambiente virtual que você criou (ele provavelmente o detectará automaticamente) para que você possa obter erros de preenchimento automático e em linha.
Você provavelmente usaria um editor. Certifique-se de configurá-lo para usar o mesmo ambiente virtual que você criou (ele provavelmente o detectará automaticamente) para que você possa obter preenchimento automático e erros em linha.
Por exemplo:
Por exemplo:
@ -405,7 +405,7 @@ Normalmente, você só precisa fazer isso **uma vez**, ao criar o ambiente virtu
///
///
## Desativar o ambiente virtual
## Desativar o ambiente virtual { #deactivate-the-virtual-environment }
Quando terminar de trabalhar no seu projeto, você pode **desativar** o ambiente virtual.
Quando terminar de trabalhar no seu projeto, você pode **desativar** o ambiente virtual.
@ -419,7 +419,7 @@ $ deactivate
Dessa forma, quando você executar `python`, ele não tentará executá-lo naquele ambiente virtual com os pacotes instalados nele.
Dessa forma, quando você executar `python`, ele não tentará executá-lo naquele ambiente virtual com os pacotes instalados nele.
## Pronto para trabalhar
## Pronto para trabalhar { #ready-to-work }
Agora você está pronto para começar a trabalhar no seu projeto.
Agora você está pronto para começar a trabalhar no seu projeto.
@ -433,7 +433,7 @@ Continue lendo. 👇🤓
///
///
## Por que ambientes virtuais
## Por que ambientes virtuais { #why-virtual-environments }
Para trabalhar com o FastAPI, você precisa instalar o <ahref="https://www.python.org/"class="external-link"target="_blank">Python</a>.
Para trabalhar com o FastAPI, você precisa instalar o <ahref="https://www.python.org/"class="external-link"target="_blank">Python</a>.
@ -443,7 +443,7 @@ Para instalar pacotes, você normalmente usaria o comando `pip` que vem com o Py
No entanto, se você usar `pip` diretamente, os pacotes serão instalados no seu **ambiente Python global** (a instalação global do Python).
No entanto, se você usar `pip` diretamente, os pacotes serão instalados no seu **ambiente Python global** (a instalação global do Python).
### O Problema
### O Problema { #the-problem }
Então, qual é o problema em instalar pacotes no ambiente global do Python?
Então, qual é o problema em instalar pacotes no ambiente global do Python?
@ -526,7 +526,7 @@ Agora, imagine isso com **muitos** outros **pacotes** dos quais todos os seus **
Além disso, dependendo do seu sistema operacional (por exemplo, Linux, Windows, macOS), ele pode ter vindo com o Python já instalado. E, nesse caso, provavelmente tinha alguns pacotes pré-instalados com algumas versões específicas **necessárias para o seu sistema**. Se você instalar pacotes no ambiente global do Python, poderá acabar **quebrando** alguns dos programas que vieram com seu sistema operacional.
Além disso, dependendo do seu sistema operacional (por exemplo, Linux, Windows, macOS), ele pode ter vindo com o Python já instalado. E, nesse caso, provavelmente tinha alguns pacotes pré-instalados com algumas versões específicas **necessárias para o seu sistema**. Se você instalar pacotes no ambiente global do Python, poderá acabar **quebrando** alguns dos programas que vieram com seu sistema operacional.
## Onde os pacotes são instalados
## Onde os pacotes são instalados { #where-are-packages-installed }
Quando você instala o Python, ele cria alguns diretórios com alguns arquivos no seu computador.
Quando você instala o Python, ele cria alguns diretórios com alguns arquivos no seu computador.
@ -552,7 +552,7 @@ Em seguida, ele **extrairá** todos esses arquivos e os colocará em um diretór
Por padrão, ele colocará os arquivos baixados e extraídos no diretório que vem com a instalação do Python, que é o **ambiente global**.
Por padrão, ele colocará os arquivos baixados e extraídos no diretório que vem com a instalação do Python, que é o **ambiente global**.
## O que são ambientes virtuais
## O que são ambientes virtuais { #what-are-virtual-environments }
A solução para os problemas de ter todos os pacotes no ambiente global é usar um **ambiente virtual para cada projeto** em que você trabalha.
A solução para os problemas de ter todos os pacotes no ambiente global é usar um **ambiente virtual para cada projeto** em que você trabalha.
@ -577,7 +577,7 @@ flowchart TB
stone-project ~~~ azkaban-project
stone-project ~~~ azkaban-project
```
```
## O que significa ativar um ambiente virtual
## O que significa ativar um ambiente virtual { #what-does-activating-a-virtual-environment-mean }
Quando você ativa um ambiente virtual, por exemplo com:
Quando você ativa um ambiente virtual, por exemplo com:
@ -714,7 +714,7 @@ Um detalhe importante é que ele colocará o caminho do ambiente virtual no **in
Ativar um ambiente virtual também muda algumas outras coisas, mas esta é uma das mais importantes.
Ativar um ambiente virtual também muda algumas outras coisas, mas esta é uma das mais importantes.
## Verificando um ambiente virtual
## Verificando um ambiente virtual { #checking-a-virtual-environment }
Ao verificar se um ambiente virtual está ativo, por exemplo com:
Ao verificar se um ambiente virtual está ativo, por exemplo com:
@ -766,7 +766,7 @@ E o segundo projeto **não funcionaria** porque você está usando o **Python in
///
///
## Por que desativar um ambiente virtual
## Por que desativar um ambiente virtual { #why-deactivate-a-virtual-environment }
Por exemplo, você pode estar trabalhando em um projeto `philosophers-stone`, **ativar esse ambiente virtual**, instalar pacotes e trabalhar com esse ambiente.
Por exemplo, você pode estar trabalhando em um projeto `philosophers-stone`, **ativar esse ambiente virtual**, instalar pacotes e trabalhar com esse ambiente.
@ -820,7 +820,7 @@ Eu juro solenemente 🐺
</div>
</div>
## Alternativas
## Alternativas { #alternatives }
Este é um guia simples para você começar e lhe ensinar como tudo funciona **por baixo**.
Este é um guia simples para você começar e lhe ensinar como tudo funciona **por baixo**.
@ -834,10 +834,10 @@ Quando estiver pronto e quiser usar uma ferramenta para **gerenciar todo o proje
* Gerenciar o **ambiente virtual** para seus projetos
* Gerenciar o **ambiente virtual** para seus projetos
* Instalar **pacotes**
* Instalar **pacotes**
* Gerenciar **dependências e versões** de pacotes para seu projeto
* Gerenciar **dependências e versões** de pacotes para seu projeto
* Certifique-se de ter um conjunto **exato** de pacotes e versões para instalar, incluindo suas dependências, para que você possa ter certeza de que pode executar seu projeto em produção exatamente da mesma forma que em seu computador durante o desenvolvimento, isso é chamado de **bloqueio**
* Certificar-se de que você tenha um conjunto **exato** de pacotes e versões para instalar, incluindo suas dependências, para que você possa ter certeza de que pode executar seu projeto em produção exatamente da mesma forma que em seu computador durante o desenvolvimento, isso é chamado de **bloqueio**
* E muitas outras coisas
* E muitas outras coisas
## Conclusão
## Conclusão { #conclusion }
Se você leu e entendeu tudo isso, agora **você sabe muito mais** sobre ambientes virtuais do que muitos desenvolvedores por aí. 🤓
Se você leu e entendeu tudo isso, agora **você sabe muito mais** sobre ambientes virtuais do que muitos desenvolvedores por aí. 🤓