15.12.2022 Views

Python Eficaz

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

(otherproject)$ pip3 install -r /tmp/myproject/requirements.txt

As engrenagens do Python vão remoer por um certo tempo enquanto baixam e

instalam os pacotes necessários para reproduzir o primeiro ambiente. Uma vez

terminado, se listarmos o conjunto de pacotes do segundo ambiente veremos que

a lista de dependências será idêntica à do primeiro.

(otherproject)$ pip list

numpy (1.8.2)

pip (1.5.6)

pytz (2014.4)

requests (2.3.0)

setuptools (2.1)

Empregar um arquivo requirements.txt é o ideal quando se pensa em colaborar

com outros programadores por meio de um sistema de controle de versões. Os

commits de código ocorrem simultaneamente à atualização da lista de

dependências de pacotes, garantindo que tudo esteja sempre atualizado a cada

passo.

A pegadinha com os ambientes virtuais é que transferi-los faz com que seu

código deixe de funcionar por conta dos caminhos absolutos. Assim como vimos

com o python3, todos eles são fixos e imutáveis em relação à pasta de instalação.

Porém, isso não importa muito. A finalidade dos ambientes virtuais é facilitar a

reprodução de uma mesma configuração. Em vez de mover a pasta do ambiente

virtual, simplesmente congele o anterior (com freeze), crie um outro onde

desejar e reinstale tudo a partir do arquivo requirements.txt.

Lembre-se

• Os ambientes virtuais permitem usar pip para instalar inúmeras versões

diferentes do mesmo pacote na mesma máquina sem que haja conflitos.

• Os ambientes virtuais são criados com o comando pyvenv, ativados com

source bin/activate e desativados com deactivate.

• É possível empacotar todas as dependências de um ambiente com pip freeze e

reproduzir mais tarde o mesmo ambiente fornecendo o arquivo

requirements.txt para o comando pip install -r.

• Nas versões do Python anteriores a 3.4, a ferramenta pyvenv deve ser baixada

www.full-ebook.com

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!