A colinha de hoje é inspirada nesse tweet aqui:
como ele funciona a respeito dos pacotes instalados via pip? tem um pip pra cada versão? os pacotes ficam disponíveis pra múltiplas versões?
— luciano ratamero (@lucianoratamero) 31 de dezembro de 2017
Então se você já instalou o pyenv e agora quer saber um pouqinho mais sobre como ele funciona assim como o Luciano, aqui vai…
O pip
Pra quem não sabe o que é o pip ele é a ferramenta recomendada para fazer a instalação de pacotes Python.
Onde vão as versões do pyenv
Dentro do diretório/pasta do pyenv temos um diretório chamado versions e é lá que moram as versões que você instala usando o comando pyenv install, na minha máquina eu tenho três versões do Python instaladas:
1
2
3
4
versions
├── 2.7.12
├── 3.3.0
└── 3.6.4
O pyenv e o pip
Cada nova versão do Python que você instala usando o pyenv vem com o seu próprio pip. Veja:
Listagem de pacotes instalados em cada versão Agora, se você setar uma versão do Python usando pyenv e instalar um pacote usando o pip o que acontece? Esse pacote fica disponível para as demais versões?
Resposta rápida: Não, um pacote instalado numa versão não fica disponível noutra versão.
Vejamos, vamos usar de exemplo o pacote do Caipyra. Antes de instalá-lo temos:
Listagem de pacotes instalados em cada versão Instalando o caipyra na versão 3.3.0:
Instalação do pacote Caipyra na versão 3.3.0 Listando novamente os pacotes instalados em cada versão:
Listagem de pacotes instalados em cada versão E finalmente o teste para ver se o pacote fica disponível ou não para outras versões:
Rodando o import caipyra em todas as versões Tanto na versão 2.7.12 quando na versão 3.6.4 Python grita ModuleNotFoundErrror, esse erro é característico quando o pacote não está instalado.
Massa né? Preparar, apontar, instalar pacotes diferentes em cada versão do Python 😜
Links
- A primeira parte dessa colinha pode ser encontrada aqui e mostra como instalar o pyenv.
- Para entender como pyenv funciona por debaixo dos panos da uma lidinha na seção How it Works no README do projeto
Agradecimentos
Obrigada Luciano Ratamero pelas dúvidas que me deram a ideia desse outro post 😉
Artigos recentes
english The most productive Saturday I've had all year thanks to Grok Bot
I built a six-bot Grok Bot squad on Friday night and spent Saturday shipping. Here's the team, what we closed, and how I kept the quota from vanishing.
english I built my AI squad and I had my most productive Saturday ever
Is this what the future of building with AI will look like?
english Starting a project from zero with AI: begin with the AGENTS.md
How I actually start a project with AI: the first file I write is not code, it is the AGENTS.md rules the agent reads every time. Grounded in my vid-compacter repo.