Pesquisa de site

Pyenv - Instale várias versões do Python para projetos específicos


Gerenciar múltiplas versões do Python em um sistema Linux não é uma tarefa fácil, especialmente para iniciantes. Às vezes fica ainda pior quando você deseja desenvolver e executar vários projetos com diferentes versões do Python no mesmo servidor. No entanto, este não deveria ser o caso se você empregar pyenv.

Leia também: Como instalar a versão mais recente do Python 3.6 no Linux

O que é Pyenv?

Pyenv é uma ferramenta simples, poderosa e multiplataforma para gerenciar múltiplas versões do Python em sistemas Linux, usada para.

  • Mudar a versão global do Python por usuário.
  • definir a versão local do Python por projeto.
  • Gerenciamento de ambientes virtuais criados por anaconda ou virtualenv.
  • Substituindo a versão do Python por uma variável de ambiente.
  • Pesquisando comandos de várias versões do Python e muito mais.

Como funciona o pyenv?

Normalmente, uma única versão padrão do Python é usada para executar todos os seus aplicativos, a menos que você especifique explicitamente a versão que deseja usar no aplicativo. Mas pyenv implementa um conceito simples de usar shims (executáveis leves) para passar seu comando para a versão correta do Python que você deseja usar, quando você tem várias versões instaladas.

Esses shims são inseridos por pyenv em um diretório na frente do seu PATH. Portanto, quando você executa um comando Python, ele é interceptado pelo shim apropriado e passado para pyenv, que então estabelece a versão do Python que foi especificada pela sua aplicação e passa seus comandos junto com a instalação correta do Python. Esta é uma visão geral de como o pyenv opera.

Neste artigo, mostraremos como instalar a versão mais recente do pyenv no Linux. Também demonstraremos os três primeiros casos de uso listados acima.

Como instalar o Pyenv no Linux

1. Primeiro instale todos os pacotes necessários para instalar diferentes versões do Python a partir de fontes usando o seguinte comando em sua respectiva distribuição Linux.

------------ On Debian/Ubuntu/Linux Mint ------------ 
sudo apt install curl git-core gcc make zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev libssl-dev

------------ On CentOS/RHEL ------------
yum -y install epel-release
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

------------ On Fedora 22+ ------------
yum install git gcc zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel

2. Em seguida, pegue a árvore de origem pyenv mais recente de seu repositório Github e instale-a no caminho $HOME/.pyenv usando o seguinte comando.

git clone https://github.com/pyenv/pyenv.git $HOME/.pyenv

3. Agora você precisa definir a variável de ambiente PYENV_ROOT para apontar para o caminho onde você instalou o pyenv e exportá-lo. Em seguida, adicione $PYENV_ROOT/bin ao seu PATH para executar o utilitário de linha de comando pyenv como qualquer outro comando do sistema.

Você também precisa ativar os shims bem como o preenchimento automático adicionando o pyenv init ao seu shell. Faça todas essas coisas em seu arquivo de inicialização bash $HOME/.bashrc, conforme mostrado.

vim $HOME/.bashrc 

Copie e cole as seguintes linhas no final deste arquivo.

## pyenv configs
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"

if command -v pyenv 1>/dev/null 2>&1; then
  eval "$(pyenv init -)"
fi

4. Depois de fazer as alterações acima, você pode criar o arquivo $HOME/.bashrc ou reiniciar o shell conforme mostrado.

source $HOME/.bashrc
OR
exec "$SHELL"

Como instalar várias versões do Python no Linux

5. Neste ponto, você deve estar pronto para começar a usar o pyenv. Antes de instalar qualquer versão do Python, você pode visualizar todas as versões disponíveis com este comando.


pyenv install -l

6. Agora você pode instalar múltiplas versões do Python via pyenv, por exemplo.

pyenv install 3.6.4
pyenv install 3.6.5

7. Para listar todas as versões do Python disponíveis para pyenv, execute o seguinte comando. Isso mostrará apenas as versões instaladas através do próprio pyenv.

pyenv versions

8. Você pode verificar a versão global do Python com o seguinte comando, neste momento, a versão padrão deve ser aquela definida pelo sistema, não pyenv.

pyenv global

Você pode definir a versão global do python usando o comando pyenv.

pyenv global 3.6.5
pyenv global

9. Agora você pode definir a versão local do Python por projeto, por exemplo, se tiver um projeto localizado em $HOME/python_projects/test, você pode definir a versão Python dele usando o seguinte comando.

cd python_projects/test
pyenv local 3.6.5
pyenv version		#view local python version for a specific project 
OR
pyenv versions

10. Pyenv gerencia ambientes virtuais por meio do plug-in pyenv-virtualenv que automatiza o gerenciamento de ambientes virtualenvs e conda para Python no Linux e outros sistemas semelhantes ao UNIX.

Você pode começar instalando este plugin usando os seguintes comandos.

git clone https://github.com/yyuu/pyenv-virtualenv.git   $HOME/.pyenv/plugins/pyenv-virtualenv
source $HOME/.bashrc

11. Agora criaremos um ambiente virtual de teste chamado venv_project1 em um projeto chamado project1 como segue.

cd python_projects
mkdir project1
cd project1
pyenv virtualenv 3.6.5 venv_project1

12. Agora, quando você listar todas as versões do Python, seus ambientes virtuais, bem como suas versões locais do Python, também deverão ser listados, conforme mostrado na captura de tela.

pyenv versions

13. Para ativar um virtualenv, por exemplo venv_project1, digite o seguinte comando.

pyenv activate venv_project1

Nota: Você pode receber a mensagem abaixo ao usar a versão mais recente do plugin pyenv-virtualenv pela primeira vez.

pyenv-virtualenv: prompt changing will be removed from future release. configure `export PYENV_VIRTUALENV_DISABLE_PROMPT=1' to simulate the behavior.

Adicione a linha export PYENV_VIRTUALENV_DISABLE_PROMPT=1 em seu arquivo $HOME/.bashrc, onde você adicionou outras configurações pyenv, e forneça o arquivo para simular o comportamento que está sendo enfatizado.

14. Para desativar o virtualenv ativado, execute este comando.

pyenv deactivate

Para obter mais informações, você pode listar todos os comandos pyenv usando o seguinte comando.

pyenv commands

Para obter mais informações, acesse o repositório pyenv no Github: https://github.com/pyenv/pyenv

Leia também: Como instalar várias versões de PHP para vários sites

Usar pyenv é realmente simples. Neste guia, mostramos como instalá-lo, bem como demonstramos alguns de seus casos de uso para gerenciar várias versões do Python em um sistema Linux. Use o formulário de feedback abaixo para fazer perguntas ou compartilhar sua opinião sobre esta ferramenta.