O PyEnv serve para isolar o python do SO. Assim o python de desenvolvimento e isolado do SO.
sudo apt-get install -y build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm gettext libncurses5-dev tk-dev tcl-dev blt-dev libgdbm-dev git python-dev python3-dev aria2 vim libnss3-tools python3-venv liblzma-dev
curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
Adicionar o trecho abaixo ao final do arquivo.
export PATH="~/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
- Listar todos interpretadores disponíveis:
pyenv install -l
- Instalar o interpretador desejado:
pyenv install 3.x.x
- Verificar versões instaladas:
pyenv versions
- Definir versão global:
pyenv global 3.x.x
- Verificar qual interpretador está sendo utilizado:
which python
O pipenv serve para criar um ambiente virtual onde serão instaladas as dependências sem poluir seu ambiente global. Ele funciona nos princípios do venv porém com algumas evoluções.
pip install pipenv
Por padrão, o pipenv cria os ambientes virtuais no diretório /home/user/.local/share/virtualenvs/
porém para melhor organização ele pode ser configurado para criar o ambiente no mesmo diretório do projeto.
Inserir o trecho abaixo no arquivo ~/.bashrc:
export PIPENV_VENV_IN_PROJECT=1
Eportar variável de ambiente:
source ~/.bashrc
-
Criar novo ambiente:
pipenv install
Desta forma ele verifica se já existe o arquivo Pipfile e instala todas as dependências já aplicando possíveis atualizações. Pode ser inserido o argumento -d para instalar as dependências de desenvolvimento.
-
Rodar um ambiente:
pipenv shell
-
Verificar dependências instaladas e dependências transitivas:
pipenv graph
-
Instalar dependência:
pipenv install <nome_da_dependência>
-
Instalar dependência de desenvolvimento:
pipenv install -d <nome_da_dependência>
-
Desinstalar dependência:
pipenv uninstall <nome_da_dependência>
-
Desinstalar dependência de desenvolvimento:
pipenv uninstall -d <nome_da_dependência>
-
Desativar ambiente:
exit
-
Executar comando (Exemplo flake8):
pipenv run flake8
-
Instalar dependências do Pipfile de forma determinística:
pipenv sync
Pode ser utilizado o argumento -d.
O arquivo Pipfile, armazena as informações do ambiente, como:
- Dependências instaladas separadas em projeto e desenvolvimento;
- Versão do interpretador;
- Fonte do repositório (Pypi por padrão);
- URL do repositório;
- Verificação de SSL (True por padrão);
O arquivo Pipfile.lock tem as hashes que garantem a segurança de que será instalada a dependência exata.