Python e Ambientes Virtuais com virtualenv
Ambientes virtuais servem para que seu programa em Python não use as bibliotecas baixadas instaladas no sistema via pip. Cada ambiente virtual terá autonomia pra baixar e gerenciar suas próprias bibliotecas.
Por que isso é útil?
Imagine que você está desenvolvendo mais de um projeto em Python, cada um com seus códigos, e por algum motivo, um dos projetos usa a biblioteca "abc" versão 1.5, e outro projeto usa a mesma biblioteca "abc" só que versão 1.8, e as versões possuem algumas incompatibilidades. O Python não te permite ter as duas versões no seu sistema operacional, você só pode ter uma versão da biblioteca. Como consequência você pode ter erros para rodar um dos projetos, pois ele estará usando uma versão diferente da esperada.
O virtualenv te permite criar vários ambientes virtuais, cada um com as dependências que você desejar. Para resolver o problema que mencionei, bastaria criar um virtualenv para cada projeto.
Instalação
Estaremos usando o Python3 como exemplo. Instalando o pip e o dev para Python3...
[code language="bash"] sudo apt install python3-pip python3-dev [/code]
Agora vamos atualizar o pip e instalar o virtualenv
[code language="bash"] sudo -H pip3 install --upgrade pip sudo -H pip3 install virtualenv [/code]
Criando uma pasta para o virtualenv
[code language="bash"] mkdir ~/meu_projeto1 cd ~/meu_projeto1 virtualenv meu_projeto1_venv [/code]
Entrando no virtualenv
[code language="bash"] source meu_projeto1_venv/bin/activate [/code]
Pronto!