howto:pyenv
Diferenças
Aqui você vê as diferenças entre duas revisões dessa página.
| Ambos lados da revisão anteriorRevisão anteriorPróxima revisão | Revisão anterior | ||
| howto:pyenv [2025/04/09 15:38] – orahcio | howto:pyenv [2025/04/16 14:31] (atual) – edição externa 127.0.0.1 | ||
|---|---|---|---|
| Linha 5: | Linha 5: | ||
| ===== O que é o pyenv? ===== | ===== O que é o pyenv? ===== | ||
| - | Como o próprio projeto diz, | + | Como o próprio |
| > //Simple Python Version Management: pyenv// | > //Simple Python Version Management: pyenv// | ||
| Linha 12: | Linha 12: | ||
| ===== Instalação ===== | ===== Instalação ===== | ||
| - | Vamos inicialmente instalar as dependências para que o __python__ possa ser compilado em seu sistema, no caso do Debian podemos usar a seguinte linha | + | Vamos inicialmente instalar as dependências para que o __python__ possa ser compilado em seu sistema, no caso do Debian podemos usar a seguinte linha, precisará ter privilégios de superusuário para tal |
| <code bash> | <code bash> | ||
| - | sudo apt update; sudo apt install build-essential libssl-dev zlib1g-dev | + | apt install build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev |
| - | libbz2-dev libreadline-dev libsqlite3-dev curl git \ | + | libsqlite3-dev curl git libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev |
| - | libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev | + | libffi-dev liblzma-dev |
| </ | </ | ||
| + | |||
| + | no Arch linux, também como superusuário | ||
| + | |||
| + | <code bash> | ||
| + | pacman -S --needed base-devel openssl zlib xz tk | ||
| + | </ | ||
| + | |||
| + | No FreeBSD, também como superusuário: | ||
| + | |||
| + | < | ||
| + | pkg install shells/bash ftp/curl devel/git databases/ | ||
| + | </ | ||
| + | |||
| + | Já no GuixSD teremos que emular um //shell// com as dependências | ||
| + | <code bash> | ||
| + | guix shell -C --emulate-fhs --network --preserve=^SSL_CERT --preserve=^HOME \ | ||
| + | --share=$SSL_CERT_DIR --share=/ | ||
| + | bash wget curl vim git sed grep gawk tar gzip gcc-toolchain pkg-config python\ | ||
| + | findutils make zlib openssl bzip2 ncurses libffi readline sqlite xz -- bash | ||
| + | </ | ||
| + | |||
| + | o trecho '' | ||
| + | |||
| + | Agora é só usar o instalador automático | ||
| + | |||
| + | <code bash> | ||
| + | curl https:// | ||
| + | </ | ||
| + | |||
| + | Ao término desse processo o próprio instalador dará um trecho a ser adicionado em seu arquivo '' | ||
| + | |||
| + | <code bash> | ||
| + | export PYENV_ROOT=" | ||
| + | [[ -d $PYENV_ROOT/ | ||
| + | eval " | ||
| + | |||
| + | eval " | ||
| + | </ | ||
| + | |||
| + | Reinicie seu terminal ou simplesmente faça '' | ||
| + | |||
| + | ===== Instalando versões do python ===== | ||
| + | |||
| + | Para verificar as versões disponíveis do **python**, faça | ||
| + | <code bash> | ||
| + | pyenv install -l | ||
| + | </ | ||
| + | use o **grep** caso esteja buscando por uma versão em específico e quer verificar se a mesma está disponível | ||
| + | <code bash> | ||
| + | pyenv install -l | grep 3.12 | ||
| + | </ | ||
| + | |||
| + | Caso queira por exemplo o **python** 3.12 na última revisão basta omitir o terceiro número da versão e executar o comando sem a flag '' | ||
| + | <code bash> | ||
| + | pyenv install 3.12 | ||
| + | </ | ||
| + | |||
| + | ===== Definindo a versão do python que será usada ===== | ||
| + | |||
| + | Agora que temos o **python** na última revisão da versão 3.12 (ou qualquer uma que você tenha instalado - lembre-se que poderá instalar qualquer versão desejada e quantas quiser), podemos usá-la de forma global ao invés do **python** nativo de seu sistema: | ||
| + | <code bash> | ||
| + | pyenv global 3.12 | ||
| + | </ | ||
| + | |||
| + | Ao definir o uso de uma versão de forma global, essa versão estará automaticamente definida em ''/ | ||
| + | |||
| + | Assim, toda vez que usar o comando **python** essa versão que escolhemos é que irá executar, veja que ela esta armazenada na sua //home//, basta executar o comando | ||
| + | <code bash> | ||
| + | pyenv which python | ||
| + | </ | ||
| + | e verá que a saída é algo do tipo ''/ | ||
| + | |||
| + | Porém podemos optar pelo uso de uma determinada versão num diretório de um projeto, caso não queira organizar esse projeto num ambiente virtual próprio apenas entre na pasta desejada e execute | ||
| + | <code bash> | ||
| + | pyenv local 3.12 | ||
| + | </ | ||
| + | e a versão 3.12 será usada sempre que você estiver nesse diretório em específico e em todos os subdiretórios dele. | ||
| + | ===== Definindo ambientes virtuais ===== | ||
| + | |||
| + | Apesar do uso de versões em subpastas, muitas vezes é melhor organizar o projeto em ambientes virtuais construídos para abrigar as dependências daquele projeto. Usando o **pyenv** fica bem simples fazer essa organização, | ||
| + | <code bash> | ||
| + | pyenv virtualenv 3.12.2 projetoZ | ||
| + | </ | ||
| + | |||
| + | Agora temos uma nova versão chamada " | ||
| + | <code bash> | ||
| + | pyenv local projetoZ | ||
| + | </ | ||
| + | e por conta da linha '' | ||
| + | |||
| + | Você pode verificar onde estão os arquivos das bibliotecas do **python** sempre com o comando '' | ||
| + | |||
| + | ===== Conclusão ===== | ||
| + | |||
| + | Temos agora disponível uma ferramenta para buscar por versões do **python**, instalá-las e isolar as bibliotecas necessárias para cada projeto em específico e seus respectivos ambientes virtuais. Isso traz uma certa vantagem sobre a forma canônica de criar ambientes virtuais no **python**. Pois ainda é possível selecionar uma versão do **python** e criar o ambiente virtual na maneira // | ||
| + | <code bash> | ||
| + | python -m venv .venv | ||
| + | </ | ||
| + | onde '' | ||
| + | <code bash> | ||
| + | source ./ | ||
| + | </ | ||
| + | |||
| + | Para alguns a forma // | ||
howto/pyenv.1744213133.txt.gz · Última modificação: (edição externa)