Python/Ambiente Virtual

De Garoa Hacker Clube
< Python
Revisão de 16h34min de 16 de dezembro de 2013 por LucianoRamalho (discussão | contribs) (Criou página com '== Contexto == Por motivos históricos os mecanismos de instalação de pacotes em Python são complicados, em parte devido à existência de várias alternativas usando comp...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

Contexto

Por motivos históricos os mecanismos de instalação de pacotes em Python são complicados, em parte devido à existência de várias alternativas usando componente mais ou menos concorrentes, complementares e mais ou menos (in)compatíveis.

Essa confusão se reflete também na questão dos ambientes virtuais para você isolar versões diferentes de Python com versões também diferentes de pacotes de bibliotecas, porque tudo isso depende e influi no mecanismo de instalação de pacotes.

A boa notícia é que a partir do Python 3.4 (beta em nov/2014), as coisas melhoraram muito, porque o instalador de pacotes pip finalmente fará parte da distribuição padrão de Python.

Se quiserem saber os detalhes sórdidos da situação atual, podem ler o PEP 453, onde os problemas tradicionais são apresentados em detalhes, juntamente com a solução adotada para o Python 3.4 (ver referências ao final).

Python 3.3 ou superior

Criar ambiente virtual com venv e pip

Não precisa ser superusuário, melhor fazer tudo isso com seu usuário normal. Esse procedimento funciona nos *nix, no Windows vai ser diferente mas não tenho como testar neste momento:

1) criar ambiente

 $ python3 -m venv meu_venv

2) ativar ambiente (note que depois de ativado o ambiente, o prompt passa a incluir o nome do ambiente entre parêntesis):

 $ source meu_venv/bin/activate
 (meu_venv)  $

3) baixar e instalar o setuptools usando o Python do ambiente ativado:

 (meu_venv)  $ wget

https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

 (meu_venv)  $ python ez_setup.py

4) baixar e instalar o pip usando o Python do ambiente ativado:

 (meu_venv)  $ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py
 (meu_venv)  $ sudo pythonX get-pip.py

5) verificar que o pip foi instalado corretamente no ambiente (a segunda linha é o resultado do comando pip --version):

 (meu_venv) luciano@lemingo ~/prj/venv-tests $ pip --version
 pip 1.4.1 from

/var/prj/venv-tests/meu_venv/lib/python3.3/site-packages (python 3.3)


Python 2.6, 2.7, 3.1, 3.2

Instalar pip no sistema

O instalador de pacotes pip depende de uma biblioteca chamada setuptools.

Em um sistema *nix, os passos abaixo devem ser suficientes para instalar o pip. No Windows, em geral não se

1) Instalar a biblioteca setuptools no sistema (necessário privilégios de administrador)

1.1) Baixar o script ez_setup.py, que instala setuptools:

 $ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py

1.2) Executar o ex_setup, como super usuário e usando o Python X desejado (X="2" ou X="3"; default X="" equivale a "2" na maioria dos sistemas):

 $ sudo pythonX ez_setup.py

2) Instalar o utilitário pip.

2.1) Baixar o script get-pip.py:

 $  wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py

2.2) Executar o get-pip.py, como super usuário e usando o Python X desejado:

 $ sudo pythonX get-pip.py

2.3) Verificar a versão do pip que foi instalada (no meu caso, usei o Python 3 no Linux Mint 15 e o resultado foi esse):

 $ pip --version
 pip 1.4.1 from /usr/local/lib/python3.3/dist-packages (python 3.3)


Instalar virtualenv no sistema

1) Instalar o pip no sistema (passos 1.1 a 2.2 acima).


ATENÇÃO
Note que só pode haver um pip no sistema, se você instalar o pip com Python 2 e

depois com Python 3, a segunda instalação vai sobrescrever a primeira. Na prática, o mais comum hoje é instalar apenas o pip para o Python 2, que nos sistemas *nix já vem instalado, e para Python 3 instalar apenas o pip dentro do venv.

2) Verificar a versão do pip que foi instalada (no meu caso, quando usei o Python 2 no Linux Mint 15 e o resultado foi esse):

 $ pip --version
 pip 1.4.1 from /usr/local/lib/python2.7/dist-packages (python 2.7)

3) Instalar o virtualenv no sistema, usando o pip do sistema (necessário privilégios de administrador). No comando abaixo, a opção --upgrade serve para atualizar uma eventual instalação anterior do virtualenv. Se você nunca instalou o virtualenv, não precisa desta opção, mas (creio que) ela não atrapalha se você não tem um virtualenv instalado.

 $ sudo pip install --upgrade virtualenv


Referências

PEP 453 -- Explicit bootstrapping of pip in Python installations
http://www.python.org/dev/peps/pep-0453/
Instruções originais para instalação do PIP
http://www.pip-installer.org/en/latest/installing.html