Surpreendentemente, pesquisando " virtualenv " leva você até o virtualenv
documentation . Se você quiser usá-lo, sugiro pelo menos uma leitura rápida.
Como o nome sugere, virtualenv
é uma ferramenta para criar ambientes isolados ou "virtuais" para o Python. Ele permite que você configure várias instâncias independentes para diferentes projetos, cada um com seus próprios módulos e até versões do Python. Isso é útil em uma variedade de circunstâncias, principalmente quando você não tem acesso de administrador e deseja instalar módulos Python. Dos documentos:
The basic problem being addressed is one of dependencies and versions, and indirectly permissions. Imagine you have an application that needs version 1 of LibFoo, but another application requires version 2. How can you use both these applications? If you install everything into
/usr/lib/python2.7/site-packages
(or whatever your platform’s standard location is), it’s easy to end up in a situation where you unintentionally upgrade an application that shouldn’t be upgraded.Or more generally, what if you want to install an application and leave it be? If an application works, any change in its libraries or the versions of those libraries can break the application.
Also, what if you can’t install packages into the global
site-packages
directory? For instance, on a shared host.In all these cases,
virtualenv
can help you. It creates an environment that has its own installation directories, that doesn’t share libraries with other virtualenv environments (and optionally doesn’t access the globally installed libraries either).
Então você tem isso. lib/
é onde os módulos vivem. include/
é para cabeçalhos e outras coisas compartilhadas. local/
é para coisas que vivem fora dos principais site-packages'' (in
lib / ) module home, like your own applications. And finally,
bin / 'é onde os executáveis vivem.
O diretório /tmp
é, assim como parece, um diretório temporário - usado para armazenar as coisas temporariamente. Dependendo do sistema, eles podem ou não ser removidos periodicamente ou quando o sistema é reinicializado. Ou não, isso depende. Seu primeiro comando criou um subdiretório de /tmp
chamado vetest/
.
Seu segundo comando, source
, basicamente significa "executar os comandos listados neste arquivo". É um comando interno, parte do shell. O resultado desse comando é iniciar o ambiente virtual. Agora você deve ver (venv)
prefixado em seu prompt de shell.
Uma vez lá dentro, você usou o Programa Instalador do Python, ou pip
, que é incluído automaticamente em todos os virtualenv. pip
se comunica com o Índice de pacotes Python ou com o PyPI . Essa é a coisa mais próxima que a comunidade Python tem de um repositório central, semelhante ao CPAN ou do Ruby rubygems.org . No seu caso, pip
estava procurando o módulo ipython-notebook
, que infelizmente não existe (o bloco de anotações faz parte do núcleo do IPython instalação). Se você tivesse executado pip install ipython
, teria conseguido algo nos seguintes termos:
Downloading/unpacking ipython
Downloading ipython-0.13.2.zip (6.4MB): 6.4MB downloaded
Running setup.py egg_info for package ipython
Installing collected packages: ipython
Running setup.py install for ipython
Installing ipcluster3 script to /tmp/vetest/bin
Installing irunner3 script to /tmp/vetest/bin
Installing ipcontroller3 script to /tmp/vetest/bin
Installing iptest3 script to /tmp/vetest/bin
Installing pycolor3 script to /tmp/vetest/bin
Installing iplogger3 script to /tmp/vetest/bin
Installing ipengine3 script to /tmp/vetest/bin
Installing ipython3 script to /tmp/vetest/bin
Successfully installed ipython
Cleaning up...
A partir de /tmp/vetest
, agora você pode digitar ipython3 notebook
(supondo que você tenha o Python 3, que você deve usar de qualquer maneira) para iniciar o servidor do IPython Notebook e uma sessão no navegador. Infelizmente, ele falhará porque você não tem muitas dependências como tornado
, mas elas são facilmente instaladas usando pip
. Uma lista de dependências básicas está disponível no site do IPython. Funcionalidades adicionais, como pylab
, exigem NumPy
, SciPy
e matplotlib
.
Por fim, o comando deactivate
sai da sua sessão virtualenv
.