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

[Dúvida] Ambiente virtual e global

Olá!

Estou enfrentando o mesmo problema que a estudante Patrícia postou no Fórum: [Dúvida] Informações do ambiente Virtual aparecem também no Ambiente Operacional

Eu fiz os passos sugeridos pelo monitor que respondeu a dúvida e mesmo assim, meus ambientes virtuais e globais continuam misturados.

Quando eu ativo o ambiente virtual e instalo, ele o faz. Ao desativar e dar pip freeze no global, está tudo instalado lá também.

Já tentei desinstalar os pacotes. Me certificar que estou no ambiente virtual ao instalar e mesmo assim continuo com esse conflito.

Alguém poderia me ajudar a entender o que está ocorrendo?

Nem o Co-Pilot do VSCode está conseguindo me trazer uma solução...

Aguardo, com urgência. Se alguém puder me ajudar, o quanto antes melhor.

Obrigado.

12 respostas

Olá, João! Tudo bem?

Quando você ativa um ambiente virtual e instala pacotes, eles devem ser isolados desse ambiente.

Se você está vendo os pacotes no ambiente global após desativar o ambiente virtual, pode ser que o ambiente virtual não esteja sendo ativado corretamente ou que os comandos estejam sendo executados no ambiente errado.

Aqui estão algumas dicas que podem ajudar a resolver o problema:

  1. Verifique a Ativação do Ambiente Virtual: Certifique-se de que o ambiente virtual está realmente ativado antes de instalar qualquer pacote. No terminal, você deve ver algo como (venv) no início da linha de comando. Isso indica que o ambiente virtual está ativo.

    source venv/bin/activate  # No Linux/Mac
    .\venv\Scripts\activate   # No Windows
    
  2. Confirme o Caminho do Python: Após ativar o ambiente virtual, verifique se o Python que está sendo usado é o do ambiente virtual. Você pode fazer isso executando which python no Linux/Mac ou where python no Windows. O caminho deve apontar para dentro da pasta do seu ambiente virtual.

  3. Instalação de Pacotes: Instale os pacotes após confirmar que o ambiente virtual está ativo. Use pip install <nome_do_pacote>.

  4. Verifique o pip: Certifique-se de que o pip que está sendo usado é o do ambiente virtual. Você pode verificar isso com which pip ou where pip, similar ao que fizemos com o Python.

  5. Recrie o Ambiente Virtual: Se o problema persistir, pode ser útil deletar o ambiente virtual e criá-lo novamente. Às vezes, isso resolve problemas de configuração.

    deactivate  # Certifique-se de desativar o ambiente
    rm -rf venv  # No Linux/Mac
    rmdir /s /q venv  # No Windows
    python -m venv venv
    

Espero que essas dicas ajudem a resolver o seu problema com ambientes virtuais. Mas caso não resolva, peço que envie mais informações sobre o seu problema, por exemplo, os passos que você fez para criar, iniciar e instalar as dependências no ambiente virtual.

Bons estudos!

Olá Armano! Obrigado pelo retorno.

O Co-Pilot me sugeriu fazer as mesmas coisas que você sugeriu. Eu fiz. Mas continuo com o mesmo problema. Sim, eu entro no virtual corretamente. Fica (venv){caminho_do_projeto}...

Já tentei desinstalar. Sair do ambiente. Desinstalar no global também. Entrar novamente no virtual e instalar novamente. Mas continuo com o mesmo problema.

Ao rodar o comando: where pip e where python, o retorno vem vazio no terminal (não retorna nada).

Fico no aguardo para uma possível solução.

Estou na comunidade Discord da Alura. Se quiser podemos compartilhar tela por lá e você o que está ocorrendo. Mas é como já descrevi.

Ainda no aguardo de uma possível ajuda para a resolução deste problema. Já tentei várias alternativas e permaneço com o mesmo problema de instalação dos pacotes no ambiente GLOBAL e Virtual (env)....

Bom dia, João! Peço mil perdões pela demora em responder.

Para conseguir ajudá-lo melhor, preciso que envie prints dos passo que você faz para criar o ambiente virtual e instalar as dependências, ou até mesmo fazer um GIF, ou vídeo de todo esse processo.

Fico no aguardo e à disposição

Então Armano, aí é que está. Nada de errado está sendo feito no passo a passo. Deve ser algum problema de configuração PATH. Eu não manjo disso ainda. Mas já tentei de tudo. Desinstalar o ambiente env. Instalar novamente. Ativar ele. Instalar os pacotes nele e somente nele, não no global, mas por um motivo que desconheço, ele está instalando em ambos os ambientes. Já pedi ajuda do Co-Pilot e fiz todas as sugestões que ele me passa e o problema persiste.

Dei até uma pausa do curso para focar em outros...

Essa é uma situação bem única, João, pelo menos não tinha visto um caso como esse.

Mas para eu conseguir ajudá-lo vou precisar de informações do seu ambiente, então, você fazendo um GIF ou vídeo de todo o processo de criar um ambiente virtual, inicializar, baixar as dependências e verificar se elas foram instaladas no ambiente virtual ou global seria perfeito.

Agradeceria se pudesse fazer isso, fico no aguardo!

Você está na comunidade do Discord? Porque lá eu poderia compartilhar a tela e você assistir....

Mas eu vou reforçar o que eu já disse. Os processos estão corretos. Então não sei o que poderia mudar postar aqui a gravação...

O passo a passo para fazer todo este processo de instalação do env e dos pacotes estão super de acordo com o vídeo do curso. Inclusive, repito que o Co-pilot também já me deu as mesmas sugestões que você e não funcionou...

Bom, não houve mais resposta...

Acho que vou ter que fazer o seguinte. Terei que dar seguimento ao curso mesmo com esse problema acontecendo e eu sem saber o motivo. Complicado porque não está certo estar acontecendo isso e eu não sei o motivo.

Já tentei de tudo. Inclusive auxílio do IA Co-Pilot do VSCode.

O problema persiste e eu sigo sem saber o que está ocasionando isso.

Oi, João!

Não vou te deixar sem resposta, fica tranquilo. O comportamento que você descreveu é bem incomum, mas existem algumas situações que podem levar a isso. Após algumas pesquisas em documentações, identifiquei que a replicação de bibliotecas no ambiente virtual e global pode ocorrer por alguns motivos como os citados a seguir. Além disso, deixarei mais a diante passos para corrigir esse comportamento.

  • A biblioteca pode ter sido instalada tanto globalmente quanto no ambiente virtual, ou seja, pode ter sido digitado o pip install antes da criação do ambiente virtual.

  • Pode acontecer se o VS Code estiver configurado para usar o Python global, mesmo com o ambiente virtual ativado.

Passo 1: Desinstalar as bibliotecas no ambiente global

  • Desative seu ambiente virtual:
    deactivate
    
  • Desinstale todas as bibliotecas dentro do ambiente global:
    pip freeze > global-packages.txt     
    
    pip uninstall -r global-packages.txt -y
    
  • Dessa forma, ao rodar pip freeze, não será retornado nenhuma biblioteca.

Passo 2: Apagar e recriar o ambiente virtual

  • Apague o diretório do ambiente virtual:

    Remove-Item -Recurse -Force venv
    
  • Crie o ambiente virtual novamente:

         python -m venv venv
    
  • Ative o ambiente e instale as dependências novamente:

    .\venv\Scripts\activate
    
    pip install certifi==2023.11.17 charset-normalizer==3.3.2 idna==3.6 requests==2.31.0 urllib3==2.1.0
    
  • Digite pip freeze para verificar se as bibliotecas foram instaladas corretamente. O retorno deverá ser algo como

    certifi==2023.11.17
    charset-normalizer==3.3.2
    idna==3.6
    requests==2.31.0
    urllib3==2.1.0
    

Verifique se deu certo:

  • Desative o ambiente virtual:

    deactivate
    
  • No ambiente global, execute:

    pip freeze
    
  • O resultado não deve conter as bibliotecas instaladas anteriormente, já que elas pertencem apenas ao ambiente virtual, como mostro a seguir:

    Captura de tela do terminal nativo do VS Code. Nele é executado o comando `pip freeze` que mostra as bibliotecas instaladas em um ambiente virtual, depois o comando `deactivate` para desativar o ambiente e por fim `pip freeze` novamente para mostrar as bibliotecas instaladas globalmente.

Se o problema persistir, podemos sim conversar pelo discord, me avise e te chamo por lá.

Fico à disposição

Olá Armano! Obrigado pelo suporte e paciência. Segui o passo a passo passado acima. E continuo tendo as libs sendo retornado com pip freeze em ambos os ambientes....muito estranho isso estar acontecendo.

Segue prints...

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Essa mensagem na imagem acima é mostrada quando eu abro o VSCode. Não sei se tem alguma relação com o que está acontecendo mas printei...

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Removendo o venv com comando via CMD e não PowerShell acima e instalando novamente e em seguida ativando acima...

Insira aqui a descrição dessa imagem para ajudar na acessibilidade As libs devidamente instalados no venv acima...

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Listando as libs com pip freeze no venv acima

Insira aqui a descrição dessa imagem para ajudar na acessibilidade Listadas fora do Ambiente Virtual....mesmo eu desativando ele acima

Eu realmente não sei o que está acontencendo. Está difícil resolver esse comportamento atípico sem entender o porquê disso estar acontecendo.

No aguardo se tiver mais alguma sugestão. Senão realmente vamos precisar fazer o processo compartilhando a tela no Discord pra você ver que está sendo tudo sendo feito nos conformes e ainda assim as libs são listadas dentro e fora do ambiente.

solução!

Olá, João.

Agradeço pela sua paciência e perseverança em continuar buscando solucionar o problema.

Embora esse comportamento seja atípico, é importante destacar que isso não impede o desenvolvimento do curso. Minha principal recomendação é desinstalar a versão atual do Python e instalar uma versão mais estável, como a 3.10. É possível que você esteja utilizando a versão 3.13, recém-lançada, ou a 3.12, que ainda apresenta alguns pequenos bugs.

Passo a passo para resolver o problema:

  1. Baixar uma versão estável do Python (3.10)

    • Clique no link acima para acessar a página de download do Python 3.10.
    • Procure pela opção de download compatível com o seu sistema operacional. No caso do Windows, clique no botão "Windows Installer" destacado na imagem abaixo:

    Captura de tela da página de download do Python 3.10, com o destaque para a opção de download do instalador para o Windows

  2. Desinstalar a versão atual do PythonAntes de instalar a nova versão, será necessário remover a versão existente. Existem duas formas de fazer isso no Windows:

    Opção 1: Via Painel de Controle

    • Abra o buscador do Windows e procure por "Painel de Controle".
    • Na seção "Programas", clique em "Desinstalar um programa".
    • Localize a versão do Python instalada, clique com o botão direito sobre ela e escolha "Desinstalar".

    Captura de tela da barra de busca do Windows, com a busca por "painel de controle"

    Opção 2: Via Configurações do Windows

    • Pressione as teclas Win + I para abrir as Configurações do Windows.
    • Clique em "Aplicativos" e depois em "Aplicativos instalados".
    • Use a barra de busca para digitar "Python" e encontrar a versão instalada.
    • Clique no ícone de três pontos ao lado do Python e selecione "Desinstalar".
    • Confirme a remoção seguindo as instruções na tela.

    Captura de tela da seção de aplicativos instalados do Windows

  3. Instalar a nova versão do Python (3.10)Após desinstalar a versão anterior, execute o instalador baixado no Passo 1. Durante a instalação, lembre-se de marcar a opção "Add Python to PATH" antes de prosseguir.

  4. Recriar o ambiente virtualCom a nova versão instalada, exclua o ambiente virtual atual e crie um novo utilizando o comando:

    python -m venv nome_do_ambiente
    

Espero que estas orientações sejam úteis!

Olá Armano! Também agradeço o suporte e atenção.

Vou fazer conforme recomendado então. Desinstalar a versão que está instalada e instalar a recomendada.

Eu queria mesmo entender o problema. Isso ajuda a lidar e serve também de aprendizado, mas infelizmente não sei mesmo o que ocorreu para esse comportamento atípico. Darei continuidade ao curso então.

Obrigado pela disposição e paciência.

Abraço.