Você está na página 1de 4

Ambientes virtuais e pacotes

Introdução
AplicaçõesÊemÊPythonÊnormalmenteÊusamÊpacotesÊeÊmódulosÊqueÊnãoÊvêmÊcomoÊparteÊdaÊ
instalaçãoÊ padrão.Ê AplicaçõesÊ àsÊ vezesÊ necessitamÊ umaÊ versãoÊ específicaÊ deÊ umaÊ
biblioteca,ÊporqueÊelaÊrequerÊqueÊalgumÊproblemaÊemÊparticularÊtenhaÊsidoÊconsertadoÊouÊ
foiÊescritaÊutilizando-seÊdeÊumaÊversãoÊobsoletaÊdaÊinterfaceÊdaÊbiblioteca.

IssoÊ significaÊ queÊ talvezÊ nãoÊ sejaÊ possívelÊ queÊ umaÊ instalaçãoÊ PythonÊ preenchaÊ osÊ
requisitosÊdeÊqualquerÊaplicação.ÊSeÊumaÊaplicaçãoÊAÊnecessitaÊaÊversãoÊ1.0ÊdeÊumÊmóduloÊ
particularÊmasÊaÊaplicaçãoÊBÊnecessitaÊaÊversãoÊ2.0,ÊosÊrequisitosÊentrarãoÊemÊconflitoÊeÊ
instalarÊqualquerÊumaÊdasÊduasÊversõesÊ1.0ÊouÊ2.0ÊfaráÊcomÊqueÊumaÊdasÊaplicaçõesÊnãoÊ
consigaÊexecutar.

AÊ soluçãoÊ paraÊ esteÊ problemaÊ éÊ criarÊ um ambienteÊ virtualÊ no link:Ê


<https://docs.python.org/pt-br/3/glossary.html#term-virtual-environment> umaÊ árvoreÊ
deÊdiretóriosÊqueÊcontémÊumaÊinstalaçãoÊPythonÊparaÊumaÊversãoÊparticularÊdoÊPython,Ê
alémÊdeÊumaÊsérieÊdeÊpacotesÊadicionais.

DiferentesÊ aplicaçõesÊ podemÊ entãoÊ usarÊ diferentesÊ ambientesÊ virtuais.Ê ParaÊ resolverÊ oÊ
exemploÊanteriorÊdeÊrequisitosÊconflitantes,ÊaÊaplicaçãoÊAÊdeveÊterÊseuÊpróprioÊambienteÊ
virtualÊ comÊ aÊ versãoÊ 1.0Ê instaladaÊ enquantoÊ aÊ aplicaçãoÊ BÊ vaiÊ possuirÊ outroÊ ambienteÊ
virtualÊcomÊaÊversãoÊ2.0.ÊSeÊaÊaplicaçãoÊBÊprecisarÊfazerÊumaÊatualizaçãoÊparaÊaÊversãoÊ
3.0,ÊissoÊnãoÊafetaráÊoÊambienteÊdaÊaplicaçãoÊA.

Criando ambientes virtuais


OÊmóduloÊusadoÊparaÊcriarÊeÊgerenciarÊambientesÊvirtuaisÊéÊchamado venv.

O venv normalmenteÊ iráÊ instalarÊ aÊ versãoÊ maisÊ recenteÊ deÊ PythonÊ queÊ vocêÊ tiverÊ
disponível.Ê SeÊ vocêÊ tiverÊ múltiplasÊ versõesÊ deÊ PythonÊ noÊ seuÊ sistema,Ê vocêÊ podeÊ
selecionarÊumaÊversãoÊespecíficaÊdoÊPythonÊexecutando python3 ouÊqualquerÊversãoÊqueÊ
vocêÊdesejar.

ParaÊcriarÊumÊambienteÊvirtual,ÊescolhaÊumÊdiretórioÊondeÊdesejaÊcolocá-loÊeÊexecuteÊoÊ
módulo venv comoÊumÊscriptÊcomÊoÊcaminhoÊdoÊdiretório:

python3 -m venv tutorial-env

IssoÊiráÊcriarÊoÊdiretório tutorial-env seÊeleÊnãoÊexistir,ÊeÊtambémÊcriaráÊdiretóriosÊdentroÊ


deleÊcontendoÊumaÊcópiaÊdoÊinterpretadorÊPython,ÊaÊbibliotecaÊpadrãoÊeÊdiversosÊarquivosÊ
deÊsuporte.

UmÊ diretórioÊ deÊ localizaçãoÊ comumÊ paraÊ umÊ ambienteÊ virtualÊ é .venv. EsseÊ nomeÊ
tipicamenteÊ mantémÊ oÊ diretórioÊ ocultoÊ emÊ seuÊ ambiente,Ê portantoÊ éÊ transparente,Ê aoÊ
menosÊtempoÊqueÊexplicaÊoÊmotivoÊdesseÊdiretórioÊexistir.Ê
TambémÊprevineÊconflitosÊcom .env,ÊarquivosÊdeÊdefiniçãoÊdeÊvariáveisÊdeÊambienteÊqueÊ
algumasÊferramentasÊutilizam.

UmaÊvezÊcriadoÊseuÊambienteÊvirtual,ÊvocêÊdeveÊativá-lo.

NoÊWindows,Êexecute:

tutorial-env\Scripts\activate.bat

NoÊUnixÊouÊnoÊMacOS,Êexecuta:

source tutorial-env/bin/activate

(EsteÊ scriptÊ éÊ escritoÊ paraÊ oÊ shellÊ bash.Ê SeÊ vocêÊ usaÊ shells csh ou fish,Ê existemÊ scriptsÊ
alternativos activate.csh e activate.fish paraÊutilização.)

AoÊativarÊseuÊambienteÊvirtualÊhaveráÊumaÊmudançaÊnoÊpromptÊdoÊshellÊparaÊmostrarÊqualÊ
ambienteÊ virtualÊ vocêÊ estáÊ usandoÊ eÊ modificaráÊ oÊ ambienteÊ paraÊ queÊ quandoÊ vocêÊ
executar python ativarÊ aÊ versãoÊ eÊ instalaçãoÊ doÊ PythonÊ particularÊ àqueleÊ ambiente.Ê PorÊ
exemplo:

$ source ~/envs/tutorial-env/bin/activate
(tutorial-env) $ python
Python 3.5.1 (default, May 6 2016, 10:59:36)
...
>>> import sys
>>> sys.path
['', '/usr/local/lib/python35.zip', ...,
'~/envs/tutorial-env/lib/python3.5/site-packages']
>>>

Gerenciando pacotes com o pip

VocêÊpodeÊinstalar,ÊatualizarÊeÊremoverÊpacotesÊusandoÊumÊprogramaÊchamado pip.ÊPorÊ
padrão pip iráÊ instalarÊ pacotesÊ doÊ PythonÊ PackageÊ Index,Ê PyPI á O Python Package Index
<https://pypi.org/>

VocêÊpodeÊnavegarÊpeloÊPythonÊPackageÊIndexÊatravésÊdoÊseuÊnavegadorÊweb.

pip temÊumaÊsérieÊdeÊsubcomandos:Ê“install”,Ê“uninstall”,Ê“freeze”,Êetc.Ê
VocêÊpodeÊinstalarÊaÊúltimaÊversãoÊdeÊumÊpacoteÊapenasÊespecificandoÊnomeÊdoÊpacote:

(tutorial-env) $ python -m pip install novas


Collecting novas
Downloading novas-3.1.1.3.tar.gz (136kB)
Installing collected packages: novas
Running setup.py install for novas
Successfully installed novas-3.1.1.3

VocêÊtambémÊpodeÊinstalarÊumaÊversãoÊespecíficaÊdeÊumÊpacoteÊdandoÊoÊnomeÊdoÊ
pacoteÊseguidoÊpor == eÊoÊnúmeroÊdaÊversão:

(tutorial-env) $ python -m pip install requests==2.6.0


Collecting requests==2.6.0
Using cached requests-2.6.0-py2.py3-none-any.whl
Installing collected packages: requests
Successfully installed requests-2.6.0

SeÊvocêÊre-executarÊesseÊcomando, pip vaiÊperceberÊqueÊaquelaÊversãoÊrequisitadaÊjáÊfoiÊ


instaladaÊeÊnãoÊfaráÊnada.ÊVocêÊpodeÊdefinirÊumaÊversãoÊdiferenteÊparaÊinstalarÊaquelaÊ
versãoÊouÊvocêÊpodeÊexecutar pip install --upgrade paraÊfazerÊaÊatualizaçãoÊdoÊpacoteÊ
paraÊaÊúltimaÊversão.

(tutorial-env) $ python -m pip install --upgrade requests


Collecting requests
Installing collected packages: requests
Found existing installation: requests 2.6.0
Uninstalling requests-2.6.0:
Successfully uninstalled requests-2.6.0
Successfully installed requests-2.7.0

pip uninstall seguidoÊ doÊ nomeÊ deÊ umÊ ouÊ maisÊ pacotesÊ iráÊ removerÊ osÊ pacotesÊ doÊ
ambienteÊvirtual.

pip show iráÊmostrarÊinformaçõesÊsobreÊumÊpacoteÊemÊparticular:

(tutorial-env) $ pip show requests


---
Metadata-Version: 2.0
Name: requests
Version: 2.7.0
Summary: Python HTTP for Humans.
Home-page: http://python-requests.org
Author: Kenneth Reitz
Author-email: me@kennethreitz.com
License: Apache 2.0
Location: /Users/akuchling/envs/tutorial-
env/lib/python3.4/site-packages
Requires:

pip list iráÊapresentarÊumaÊlistaÊdeÊtodosÊosÊpacotesÊinstaladosÊnoÊambienteÊvirtual.

(tutorial-env) $ pip list


novas (3.1.1.3)
numpy (1.9.2)
pip (7.0.3)
requests (2.7.0)
setuptools (16.0)

pip freeze iráÊmostrarÊumaÊlistaÊdosÊpacotesÊinstalados,ÊmasÊoÊresultadoÊusaÊoÊformatoÊ


queÊ o pip install aceita.Ê UmaÊ convençãoÊ comumÊ éÊ colocarÊ essaÊ listaÊ emÊ umÊ arquivoÊ
chamado requirements.txt:

(tutorial-env) $ pip freeze > requirements.txt


(tutorial-env) $ cat requirements.txt
novas==3.1.1.3
numpy==1.9.2
requests==2.7.0

OÊarquivo requirements.txt podeÊserÊsubmetidoÊnoÊcontroleÊdeÊversãoÊeÊadicionadoÊcomoÊ


parteÊ daÊ aplicação.Ê UsuáriosÊ poderãoÊ entãoÊ instalarÊ todosÊ osÊ pacotesÊ necessáriosÊ comÊ
um install -r:

(tutorial-env) $ python -m pip install -r requirements.txt


Collecting novas==3.1.1.3 (from -r requirements.txt (line 1))
...
Collecting numpy==1.9.2 (from -r requirements.txt (line 2))
...
Collecting requests==2.7.0 (from -r requirements.txt (line
3))
...
Installing collected packages: novas, numpy, requests
Running setup.py install for novas
Successfully installed novas-3.1.1.3 numpy-1.9.2 requests-
2.7.0

pip temÊinúmerasÊoutrasÊopções.Ê

(ConsulteÊ oÊ guia - Instalando módulos Python — documentação Python


3.11.4 <https://docs.python.org/pt-br/3/installing/index.html#installing-index> paraÊ aÊ
documentaçãoÊcompletaÊdo pip.)

Você também pode gostar