Agora veja o path do Python com o virtualenv ativo: $ source ~/virtualenvs/meu_venv/bin/activate (meu_venv) $ python Python 3.5.2 (default, Jul 20 2016, 16:13:40) [GCC 5.4.0 20160609] on linux Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> print('\n'.join(sys.path)) /home/viniciusban/.pyenv/versions/3.5.2/lib/python35.zip /home/viniciusban/.pyenv/versions/3.5.2/lib/python3.5 /home/viniciusban/.pyenv/versions/3.5.2/lib/python3.5/plat-linux /home/viniciusban/.pyenv/versions/3.5.2/lib/python3.5/lib-dynload /home/viniciusban/virtualenvs/meu_venv/lib/python3.5/site-packages >>> Note a ultima linha de cada uma das listas. Viu? O diretorio `site-packages` do sistema (ultimo da lista) nao e reconhecido no virtualenv. No lugar dele, o `site-packages` do virtualenv esta la.Por isso os pacotes instalados no seu virtualenv serao reconhecidos, sem interferir nos outros virtualenvs existentes no seu computador. Simples e eficiente!E se eu precisar usar mais de uma versao de Python?---------------------------------------------------Para essa situacao existe outra ferramenta muito legal, que e o [pyenv](https://github.com/yyuu/pyenv). Ele permite ter varias versoes de Python no mesmo computador. Ativando cada uma no momento que voce desejar. E como se fosse virtualenv, mas para versoes de Python. Com ele voce pode ter, por exemplo, Python 3.4 e Python 3.5 instalados, sem conflito.O [pyenv](https://github.com/yyuu/pyenv) usa um principio parecido ao do virtualenv, mas com uma vantagem: ele mantem um repositorio das versoes de Python. Entao, para instalar uma nova versao, basta voce digitar `$ pyenv install 2.7` e voila!E e claro, mesmo usando o pyenv, o virtualenv continua necessario e recomendado.Quando devo usar um virtualenv?-------------------------------Uma pergunta que sempre ouvimos sobre virtualenv e:> Quando devo usar o virtualenv?A resposta que dou e:> Sempre! Crie um virtualenv para cada projeto. Mesmo em ambiente de producao.Nao existe motivo para nao usar virtualenvs. Eles sao simples, leves e podem ser recriados facilmente com todas as dependencias.Alem disso, facilitam muito quando voce precisa fazer teste de uma nova versao do seu sistema ou de alguma biblioteca usada, sem ter que criar uma VM ou provisionar um novo servidor exclusivo.Como assim, recriados facilmente?---------------------------------Se voce mantiver um arquivo com as dependencias do seu projeto, voce pode recriar seu virtualenv com um comando.Quem faz isso e outro programa, o [pip](https://packaging.python.org/installing/#use-pip-for-installing). E ele quem instala bibliotecas no Python.E recomendavel manter um arquivo, que por convencao chamamos de `requirements.txt` ou `requirements.pip` (mas pode ter qualquer nome), que lista as dependencias do seu projeto. Dou mais detalhes sobre o pip no artigo [Como manter as dependencias de pacotes garantindo as correcoes de bugs](http://aprenda-python.blogspot.com/2016/02/como-manter-as-dependencias-de-pacotes.html).Para instalar todas as dependencias de seu projeto a partir de um arquivo, use: (meu_venv) $ pip install -r requirements.txtFinalizando, use virtualenv. E simples e vai economizar problemas de conflito entre as bibliotecas dos seus projetos.-------------------Agradecimento: quero agradecer ao [@cassiobotaro](http://twitter.com/cassiobotaro) e ao [@filipecifali](http://twitter.com/filipecifali) por me ajudarem com revisao, experiencia e ajustes nesse texto.