Python Portugalhttps://python.pt/2021-01-20T17:00:00+00:00Como usar e criar Virtualenv no Windows 102021-01-20T17:00:00+00:002021-01-20T17:00:00+00:00António Nevestag:python.pt,2021-01-20:/blog/2021/01/20/virtualenv-windows/<p class="first last">Como criar e usar ambientes virtuais com Virtualenv no Windows 10</p>
<div class="line-block">
<div class="line"><br /></div>
</div>
<img alt="Virtualenv no windows 10" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_01.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Neste artigo vou explicar a necessidade de utilizar ambientes virtuais,
como usar e criar, com Virtualenv no Windows 10.</div>
<div class="line">Existem outras boas ferramentas para criar ambientes virtuais, mas sem
dúvida Virtualenv é um dos mais queridos e usados.</div>
<div class="line"><br /></div>
</div>
<hr class="docutils" />
<div class="section" id="ambientes-virtuais-porque">
<h2>Ambientes virtuais, porquê?</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Vamos imaginar que temos instalado no sistema operativo a versão do
Python 3.7.9, e vamos começar a desenvolver um sistema com Kivy, instalamos
a biblioteca Kivy e tudo bem, vai funcionar sem problemas, depois precisamos
instalar OpenCV, e tudo continua funcionando bem, entretanto começamos
a desenvolver um sistema web, e instalamos Django e todas as bibliotecas necessárias.</div>
<div class="line">Reparem que já começa a ficar tudo um pouco confuso, tudo instalado na
mesma pasta junto da instalação principal do Python.</div>
<div class="line">Mas agora podemos ter instalado uma biblioteca para usar com o Django
que não vai funcionar por incompatibilidade com outra biblioteca instalada
anteriormente para ser usada no nosso projeto Kivy.</div>
<div class="line">E agora? Desinstalamos uma e deixamos a outra?</div>
<div class="line">Vamos imaginar outra situação, temos instalado Django 3 e precisamos mexer
em um projeto antigo desenvolvido com Django 2 com algumas bibliotecas
que só funcionam com Django 2 e não funcionam com Django 3.</div>
<div class="line">Entendem agora como o ideal é sempre ter uma instalação Python para cada
projeto que vamos desenvolver?</div>
<div class="line">A melhor solução é criarmos um ambiente virtual para cada projeto, ou pelo
menos criar um para projetos parecidos ou com as mesma necessidade a nível
de versões e bibliotecas.</div>
<div class="line">Outra situação em que existe necessidade de utilizar ambientes virtuais,
é quando queremos experimentar se as nossas aplicações funcionam com
diferentes versões das mesmas bibliotecas.</div>
<div class="line">Mas a principal razão, é mantermos as instalações do Python no sistema,
originais, limpas e sempre prontas para que ambientes virtuais sejam
criados sem problemas.</div>
<div class="line"><br /></div>
<div class="line">É importante também não confundir, versões diferentes do Python no Windows
com ambientes virtuais diferentes.</div>
<div class="line">Na prática cada ambiente virtual vai “criar uma cópia” de uma versão do
Python que escolhermos, versão que já tenha sido instalada anteriormente no sistema.</div>
<div class="line">Neste artigo explico <a href="https://python.pt/blog/2021/01/19/instalacao-python-windows" target="_blank" rel="noopener">Como instalar várias versões Python no Windows 10</a>.</div>
<div class="line">Podemos ter várias versões do Python diferentes instaladas e podemos ter
vários ambientes virtuais com a mesma versão do Python, mas em cada ambiente,
diferentes bibliotecas.</div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="consideracoes-iniciais">
<h2>Considerações Iniciais</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">No meu sistema já tenho instalado o Python 3.7.9 e o Python 3.9.0.</div>
<div class="line"><br /></div>
<div class="line">Vamos usar o terminal e o explorador do Windows.</div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="instalacao-virtualenv">
<h2>Instalação Virtualenv</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Vamos começar por ver se o Virtualenv já está instalado, para isso abrimos
um terminal (prompt de comando) com permissões de administrador e digitamos.</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">where</span> <span class="n">virtualenv</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">No caso de não estar instalado simplesmente digitamos.</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">pip</span> <span class="n">install</span> <span class="n">virtualenv</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Na foto abaixo, podemos ver que no meu sistema já tenho o virtualenv instalado.</div>
<div class="line">Pode parecer uma contradição em relação ao que expliquei anteriormente,
mas é a única instalação que vamos fazer “junto” da instalação principal
do Python no Windows.</div>
<div class="line">No caso de termos várias versões diferentes do Python, vai ser instalado
junto com a versão que o Windows “considera” como principal, como explicado
neste <a href="https://python.pt/blog/2021/01/19/instalacao-python-windows" target="_blank" rel="noopener">artigo</a>.</div>
<div class="line">Se fizermos a instalação usando um terminal sem permissões de administrador,
a instalação vai ser apenas para o usuário logado no momento.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Confirmação instalção do Virtualenv" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_02.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="onde-guardar-os-ambientes-virtuais-nomes-e-quantidade">
<h2>Onde guardar os ambientes virtuais? Nomes e quantidade.</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Vamos pensar juntos, se tivermos vários projetos que utilizam a mesma
versão do Python, e as mesmas bibliotecas, basta criar um ambiente virtual
para esses projetos.</div>
<div class="line">Bibliotecas diferentes já precisamos de ambientes diferentes.</div>
<div class="line">Mas resumindo, os ambientes virtuais podem ser guardados onde quiserem
e terem o nome que quiserem.</div>
<div class="line">Eu por exemplo, tenho uma pasta chamada devenvs onde guardo alguns.</div>
<div class="line">Para projetos maiores e em especial com Django eu guardo o ambiente virtual
dentro da própria pasta do projeto.</div>
<div class="line"><br /></div>
<div class="line">Vamos então criar uma pasta dentro da nossa pasta pessoal chamada ‘devenvs’.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Criar ambiente virtual" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_03.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="criar-um-ambiente-virtual">
<h2>Criar um ambiente virtual.</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Entramos dentro da pasta que criamos anteriormente.</div>
<div class="line"><br /></div>
<div class="line">Agora temos duas opções, ou criamos uma nova pasta com o nome que escolhermos
para o ambiente virtual e depois dentro da pasta criamos o ambiente,
ou vamos criar diretamente a pasta e o ambiente ao mesmo tempo.</div>
<div class="line">Não sei explicar porquê, mas eu costumo criar primeiro a pasta escolhendo
já o nome do ambiente virtual e depois sim criar o ambiente virtual.</div>
<div class="line">Mas vou explicar as duas maneiras de fazer isso.</div>
<div class="line"><br /></div>
<div class="line">Dentro da pasta onde vamos guardar os ambientes virtuais, vamos
criar outra pasta chamada py390 (pode ser qualquer nome)</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Pasta dos ambientes virtuais" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_04.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Vamos abrir um terminal, não é necessário um terminal com permissões de administrador.</div>
<div class="line">Podemos usar o comando:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">cd</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Para chegar dentro da pasta onde vamos criar o ambiente virtual.</div>
<div class="line">Em seguida digitamos:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">virtualenv</span> <span class="o">.</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Atenção precisamos digitar ‘ virtualenv ‘ um espaço e um ponto ‘ . ‘</div>
<div class="line">O ponto é necessário por que já criamos anteriormente a pasta do ambiente virtual.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Ambiente virtual" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_05.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Já temos um ambiente virtual, com a versão Python 3.9.0.</div>
<div class="line"><br /></div>
<div class="line">Como utilizamos apenas ‘virtualenv’ sem definir a versão do Python,
foi criado um ambiente com a versão principal do Windows, recordem que
no meu caso tenho duas versões instalas no Windows, sendo a 3.9.0 a versão principal.</div>
<div class="line"><br /></div>
<div class="line">Agora chegou a hora de aprender como usar o ambiente virtual.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="como-usar-o-virtualenv">
<h2>Como usar o Virtualenv</h2>
<div class="line-block">
<div class="line">Antes de usar o ambiente virtual, por exemplo para instalar as bibliotecas
necessárias, é necessário ativa-lo.</div>
<div class="line"><br /></div>
<div class="line">No terminal entramos dentro da pasta do ambiente virtual, no nosso caso
chama-se ‘py390’, e depois precisamos entrar dentro da pasta Scripts.</div>
<div class="line"><br /></div>
<div class="line">Dentro da pasta Scripts, digitamos</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">activate</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Este é o comando para ativar o ambiente virtual.</div>
<div class="line"><br /></div>
<div class="line">Reparem que agora entre parentes, temos o nome do ambiente virtual
confirmando que está ativado.</div>
<div class="line"><br /></div>
<div class="line">Explicando de uma maneira simples, foi criado temporariamente nas variáveis
de ambiente, um caminho (path) indicando ao Windows que a versão principal
do Python, é a versão que está no ambiente virtual ativado.</div>
<div class="line"><br /></div>
<div class="line">Podemos continuar dentro da pasta Scripts ou mover para outra, mas os
comandos ‘pip’ por exemplo para instalarmos bibliotecas necessárias,
vão instalar essas bibliotecas dentro do ambiente virtual.</div>
<div class="line"><br /></div>
<div class="line">Se arrancarmos pelo terminal agora, um arquivo .py, o interpretador
Python vai ser o do ambiente virtual.</div>
<div class="line">Se utilizarmos um IDE e indicarmos como interpretador o ambiente virtual,
a situação vai ser a mesma.</div>
<div class="line">Com Visual Studio Code ou PyCharm por exemplo, ao abrirmos um projeto e indicarmos o ambiente virtual o próprio IDE ativa o ambiente virtual</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Activar ambiente virtual" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_06.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Para desactivar, basta digitar.</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">deactivate</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Desactivar ambiente virtual" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_07.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="como-criar-um-ambiente-virtual-com-uma-versao-especifica-do-python">
<h2>Como criar um ambiente virtual com uma versão especifica do Python</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Embora a maneira de usar seja igual, dentro da pasta ‘Scripts’
activamos com ‘activate’, ou desactivamos com o comando ‘deactivate’.</div>
<div class="line">Para criar este ambiente com uma versão do Python diferente, precisamos
digitar um parâmetro a mais.</div>
<div class="line">Vamos começar por criar uma nova pasta, onde vamos criar o novo ambiente virtual.</div>
<div class="line">Vamos chamar de py379.</div>
<div class="line"><br /></div>
<div class="line">Entramos no terminal, e usamos o comando:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">cd</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Até entrarmos dentro da nova pasta, e digitamos:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">virtualenv</span> <span class="o">.</span> <span class="o">--</span><span class="n">python</span><span class="o">=</span><span class="mf">3.7</span><span class="o">.</span><span class="mi">9</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">E já temos um ambiente virtual com o Python 3.7.9.</div>
<div class="line"><br /></div>
<div class="line">Se neste momento, apareceu algum erro, mais abaixo tem uma nota importante,
onde explico outra forma de escolher a versão do Python para criar o ambiente virtual.</div>
<div class="line"><br /></div>
<div class="line">Aproveito para recordar que esta versão do Python já tinha sido instalada
anteriormente no Windows e está no PATH.</div>
<div class="line">Vejam este artigo: <a href="https://python.pt/blog/2021/01/19/instalacao-python-windows" target="_blank" rel="noopener">Como instalar várias versões Python no Windows 10</a>, se têm alguma dúvida.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Escolher a versão do Python" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_08.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Vamos digitar alguns comandos para que seja possivel entender mais facilmente
como utilizar um ambiente virtual.</div>
<div class="line"><br /></div>
<div class="line">Podemos continuar no terminal, dentro da pasta do novo ambiente virtual,
e digitamos o comando:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">python</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Reparem que o ambiente virtual não está ativado e por isso, o Python
é o 3.9.0, a versão principal do Windows.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Python 3.9.0" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_09.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Continuamos digitando:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">exit</span><span class="p">()</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Para sair do Python.</div>
<div class="line">Dentro da pasta do ambiente virtual py379, para entrarmos na pasta
Scripts, usamos:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">Scripts</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">E depois:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">activate</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Agora que já ativamos o ambiente virtual, digitamos novamente.</div>
</div>
<div class="highlight"><pre><span></span><span class="n">python</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Neste momento estamos a usar o Python 3.7.9.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Python 3.7.9" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_10.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line"><strong>Nota importante</strong></div>
<div class="line"><br /></div>
<div class="line">Até agora criámos dois ambientes virtuais com Virtualenv,
com diferentes versões de Python já instaladas anteriormente.</div>
<div class="line">Mas as duas versões que usei neste tutorial, além de já estarem instaladas,
também estão no PATH do Windows.</div>
<div class="line"><br /></div>
<div class="line">No caso de termos necessidade de criar um ambiente virtual com uma versão
do Python que não esteja no path, precisamos utilizar um comando que
indique o caminho completo do Python executável.</div>
<div class="line"><br /></div>
<div class="line">Podemos encontrar o caminho de várias maneiras, mas eu costumo usar o explorador do Windows.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Python" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_11.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Voltamos para o terminal, criamos uma nova pasta dentro da pasta onde
guardamos os ambientes, desta vez vamos criar a pasta pelo terminal
em vez de usar o explorador do Windows.</div>
<div class="line"><br /></div>
<div class="line">Dentro da pasta ‘devenvs’, usamos o comando:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">mkdir</span> <span class="n">venv379</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">para criar a pasta ‘venv379’, depois entramos nela com o comando:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">cd</span> <span class="n">venv379</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Dentro da pasta onde vai ser criado o novo ambiente virtual em vez de usarmos</div>
<div class="line">‘virtualenv . –python=3.7.9’, vamos utilizar o comando:</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">virtualenv</span> <span class="o">.</span> <span class="o">--</span><span class="n">python</span> <span class="s2">"C:\Program Files\Python37\python.exe"</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Python" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_02_12.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="consideracoes-finais-e-resumo">
<h2>Considerações finais e resumo</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Creio que neste momento já entenderam a necessidade de sempre desenvolvermos
nossos projetos utilizando ambientes virtuais, acredito também que já
todos conseguem criar e utilizar sem problemas Virtualenv.</div>
<div class="line"><br /></div>
<div class="line">Agora é possível instalar e desinstalar com segurança, novas bibliotecas
e experimentarmos o que quisermos.</div>
<div class="line"><br /></div>
<div class="line">Para apagar um ambiente virtual basta apagar a pasta.</div>
<div class="line"><br /></div>
<div class="line">Como boa prática a primeira coisa que faço sempre, depois de criar um
ambiente virtual, é atualizar o ‘pip’ e o ‘setuptools’</div>
<div class="line"><br /></div>
<div class="line">E nunca esqueçam de ativar o ambiente para ser usado.</div>
<div class="line">No caso de mudarem as pastas de lugar lembrem também que é necessário
informar os IDEs que utilizam.</div>
<div class="line"><br /></div>
<div class="line">Autor: <a href="https://github.com/Antonio-Neves" target="_blank" rel="noopener">António Manuel Neves</a></div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
Como instalar várias versões Python no Windows 102021-01-19T17:00:00+00:002021-01-19T17:00:00+00:00António Nevestag:python.pt,2021-01-19:/blog/2021/01/19/instalacao-python-windows/<p class="first last">Como instalar várias versões Python no Windows 10, de maneira simples e rápida</p>
<div class="line-block">
<div class="line"><br /></div>
</div>
<img alt="Python no windows 10" class="img-fluid rounded mx-auto d-block align-center" src="/images/antonio_01_01.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Neste post vou explicar como instalar várias versões Python no Windows 10.</div>
<div class="line">Python é uma incrível linguagem de programação, e no momento que escrevo este
artigo encontra-se na versão 3.9.1.</div>
<div class="line">Existem várias razões para que seja necessário ter instaladas várias versões
do Python, no meu caso, utilizo Kivy para criar aplicações e sistemas desktop,
mas o Kivy não funciona, pelo menos na altura em que estou a escrever este artigo,
com versões do Python superiores a 3.7.9.</div>
<div class="line">Outra razão para ter várias versões instaladas pode ser a necessidade
de usar ou alterar um programa criado com uma versão do Python diferente
da que usamos atualmente.</div>
<div class="line">Aproveito para lembrar que sempre devemos utilizar ambientes virtuais para
desenvolvermos algo, como explico neste artigo:</div>
<div class="line"><a href="https://python.pt/blog/2021/01/20/virtualenv-windows" target="_blank" rel="noopener">Como usar e criar Virtualenv no Windows 10</a>.</div>
<div class="line"><br /></div>
<div class="line">Eu só instalo no sistema operativo as versões de Python que necessito
e em seguida todas as instalações de bibliotecas necessárias, como por
exemplo Django, Kivy e outras vão ser instaladas nos ambientes virtuais.</div>
<div class="line"><br /></div>
</div>
<hr class="docutils" />
<div class="section" id="consideracoes-iniciais">
<h2>Considerações Iniciais</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Vou explicar como instalar duas versões do Python no Windows 10.</div>
<div class="line"><br /></div>
<div class="line"><a href="https://www.python.org/downloads/release/python-390/" target="_blank" rel="noopener">Python 3.9.0</a>.</div>
</div>
<div class="line-block">
<div class="line"><a href="https://www.python.org/downloads/release/python-379/" target="_blank" rel="noopener">Python 3.7.9</a>.</div>
</div>
<div class="line-block">
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="downloads-necessarios">
<h2>Downloads necessários</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Vamos na página de downloads do Python para Windows para escolhermos as versões que necessitamos.</div>
<div class="line"><br /></div>
<div class="line"><a href="https://www.python.org/downloads/windows/" target="_blank" rel="noopener">www.python.org/downloads/windows/</a></div>
</div>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Para o nosso tutorial escolhemos as opções ” Windows x86-64 executable installer “</div>
<div class="line"><br /></div>
</div>
<img alt="Versões do Python" class="img-fluid rounded d-block align-center" src="/images/antonio_01_02.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="instalacao-python-3-9-0">
<h2>Instalação Python 3.9.0</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Vamos começar a instalação.</div>
<div class="line">Depois de iniciar o arquivo baixado anteriormente, deixamos marcadas
as opções, como na foto, em seguida apertamos em “Customize Installation”.</div>
<div class="line"><br /></div>
</div>
<img alt="Instalação do Python 3.9.0" class="img-fluid rounded d-block align-left" src="/images/antonio_01_03.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Agora que estamos na seção de instalação customizável, (custumize installation),
marcamos todas as opções como na foto abaixo e depois apertamos “Next”.</div>
<div class="line"><br /></div>
</div>
<img alt="Instalação do Python 3.9.0 opções" class="img-fluid rounded d-block align-left" src="/images/antonio_01_04.png" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Na próxima seção marcamos as opções como no foto abaixo.</div>
<div class="line">Eu deixo a opção de associação de arquivos .py desmarcada,
por que sempre prefiro abrir diretamente os arquivos com um editor de texto,
eu uso <a href="https://www.sublimetext.com/" target="_blank" rel="noopener">Sublime Text 3</a>, é muito rápido, leve e muito customizável, para
desenvolver um projeto completo, um sistema, uma aplicação, utilizo <a href="https://www.jetbrains.com/pt-br/pycharm/" target="_blank" rel="noopener">PyCharm</a>,
mas para abrir um arquivo, fazer um teste, uma alteração simples, Sublime é o ideal.</div>
<div class="line"><br /></div>
<div class="line">O local de instalação deixamos em: C:\Program Files\Python39.</div>
<div class="line"><br /></div>
<div class="line">Em seguida podemos finalmente apertar em “Install”.</div>
</div>
<div class="line-block">
<div class="line"><br /></div>
</div>
<img alt="Instalação do Python 3.9.0 opções" class="img-fluid rounded d-block align-left" src="/images/antonio_01_05.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Terminando a instalação, desabilitamos a limitação de 260 caracteres para o Path.</div>
<div class="line"><br /></div>
<div class="line">Apertamos em Close e já temos o Python 3.9.0 no Windows 10.</div>
<div class="line"><br /></div>
</div>
<img alt="Instalação do Python 3.9.0 final" class="img-fluid rounded d-block align-left" src="/images/antonio_01_06.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="confirmar-a-instalacao">
<h2>Confirmar a instalação</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Para confirmar a instalação podemos abrir o terminal e digitar alguns comandos.</div>
<div class="line"><br /></div>
</div>
<div class="highlight"><pre><span></span><span class="n">python</span>
<span class="n">py</span>
<span class="n">where</span> <span class="n">python</span>
<span class="n">python</span> <span class="o">-</span><span class="n">V</span>
</pre></div>
<div class="line-block">
<div class="line"><br /></div>
</div>
<img alt="Instalação do Python 3.9.0 confirmação" class="img-fluid rounded d-block align-left" src="/images/antonio_01_07.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="instalacao-python-3-7-9">
<h2>Instalação Python 3.7.9</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Chegamos no momento de instalar outra versão do Python, neste caso
vamos usar Python 3.7.9.</div>
<div class="line">Abrimos o arquivo e seguimos os mesmos passos da instalação anterior,
vou deixar umas fotos com as opções que eu deixo selecionadas.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Instalação do Python 3.7.9" class="img-fluid rounded d-block align-left" src="/images/antonio_01_08.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Instalação do Python 3.7.9 opções" class="img-fluid rounded d-block align-left" src="/images/antonio_01_09.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Instalação do Python 3.7.9 final" class="img-fluid rounded d-block align-left" src="/images/antonio_01_10.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="confirmar-a-instalacao-do-python-3-7-9">
<h2>Confirmar a instalação do Python 3.7.9</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">No menu de programas do Windows, já podemos ver que temos as duas versões do Python que instalámos.</div>
<div class="line"><br /></div>
</div>
<img alt="Instalação do Python 3.7.9 confirmação" class="img-fluid rounded d-block align-left" src="/images/antonio_01_11.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<div class="line-block">
<div class="line">Mas <strong>ATENÇÂO</strong> ao abrirmos o terminal e usarmos os comandos para utilizar
ou para confirmar a versão do Python, descobrimos que talvez a versão
principal não seja a que preferimos.</div>
<div class="line"><br /></div>
</div>
<img alt="Instalação do Python 3.7.9 confirmação" class="img-fluid rounded d-block align-left" src="/images/antonio_01_12.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Um problema que podemos resolver facilmente, alterando as variáveis de
ambiente, para que possamos ter no Windows, como versão principal do
Python a que nós preferirmos.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="variaveis-de-ambiente-path">
<h2>Variáveis de ambiente (PATH)</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Existem várias maneiras de chegarmos às variáveis de ambiente.</div>
<div class="line">Eu costumo ir pelo explorador do Windows.</div>
<div class="line"><br /></div>
</div>
<img alt="Path do Windows acessar" class="img-fluid rounded d-block align-left" src="/images/antonio_01_13.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Path do Windows acessar" class="img-fluid rounded d-block align-left" src="/images/antonio_01_14.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Path do Windows acessar" class="img-fluid rounded d-block align-left" src="/images/antonio_01_15.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Ao entrarmos na janela “Variáveis de Ambiente” selecionamos “Path” e
apertamos em “Editar”, como na foto abaixo.</div>
<div class="line"><br /></div>
</div>
<img alt="Path do Windows alterar" class="img-fluid rounded d-block align-left" src="/images/antonio_01_16.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Nesta janela selecionamos com um clik do mouse o caminho (path).</div>
<div class="line"><strong>C:\Program Files\Python39\Scripts</strong></div>
<div class="line"><br /></div>
<div class="line">Em seguida apertamos em “Mover para Cima” até que seja o primeiro.</div>
<div class="line"><br /></div>
<div class="line">Vamos agora fazer o mesmo com o caminho.</div>
<div class="line"><strong>C:\Program Files\Python39\.</strong></div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Path do Windows alterar" class="img-fluid rounded d-block align-left" src="/images/antonio_01_17.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Path do Windows alterar" class="img-fluid rounded d-block align-left" src="/images/antonio_01_18.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
<div class="line">Para terminar, o nosso PATH deve ficar como na foto abaixo.</div>
<div class="line">Finalmente apertamos em “OK” em todas as janelas para fechar.</div>
<div class="line"><br /></div>
</div>
<img alt="Path do Windows alterar" class="img-fluid rounded d-block align-left" src="/images/antonio_01_19.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="confirmacao">
<h2>Confirmação</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Na seção anterior vimos como escolher a versão 3.9.0 para que seja
o Python principal do Windows.</div>
<div class="line">Vamos agora confirmar que tudo está certo digitando no terminal os comandos já conhecidos.</div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
<img alt="Confirmação instalação Python no Windows" class="img-fluid rounded d-block align-left" src="/images/antonio_01_20.jpeg" />
<div class="line-block">
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
<hr class="docutils" />
<div class="section" id="como-instalar-varias-versoes-python-no-windows-10-conclusao">
<h2>Como instalar várias versões Python no Windows 10, conclusão.</h2>
<div class="line-block">
<div class="line"><br /></div>
<div class="line">Quero lembrar que qualquer instalação do Python no sistema operativo
deve ficar “limpa” e sem alterações.</div>
<div class="line">Para desenvolver um projeto, sistema, programa, etc, que necessite utilizar
outras bibliotecas, devemos utilizar ambientes virtuais, como explico
neste artigo:</div>
<div class="line"><a href="https://python.pt/blog/2021/01/20/virtualenv-windows" target="_blank" rel="noopener">Como usar e criar Virtualenv no Windows 10</a>.</div>
<div class="line"><br /></div>
<div class="line">Autor: <a href="https://github.com/Antonio-Neves" target="_blank" rel="noopener">António Manuel Neves</a></div>
<div class="line"><br /></div>
<div class="line"><br /></div>
</div>
</div>
Nova equipa, uma nova imagem e novas ambições2019-03-09T17:00:00+00:002019-03-09T17:00:00+00:00Henrique Azevedotag:python.pt,2019-03-09:/blog/2019/03/09/apeloParticipacao/<p class="first last">Apelo à participação e divulgação da comunidade Python Portugal</p>
<p>Olá,</p>
<p>Estamos de volta, com uma nova equipa, uma nova imagem e novas ambições.</p>
<p>Esta pequena equipa, de 3 pessoas, começou por conjugar ideias e definiu pequenas etapas a cumprir. Essas etapas passam por renovar o site, renovar as plataformas de comunicação, fazer a divulgação do portal e plataformas, apelar à participação na comunidade e por fim, criar actividades que dinamizem a comunidade.</p>
<p>O dinamismo das comunidades é fomentado e fortalecido pela participação de todos e como tal, gostaríamos de apelar à vossa participação, com ideias, com ensinamentos, com actividades que façam crescer esta comunidade.</p>
<p>Desta forma, fica aqui o pedido à vossa participação e divulgação desta comunidade através das plataformas de comunicação: <a class="reference external" href="http://python.pt/ondeestamos/">http://python.pt/ondeestamos/</a></p>
<p>Cumprimentos</p>
Nova imagem do site2019-03-01T13:00:00+00:002019-03-01T13:00:00+00:00Luis Lourotag:python.pt,2019-03-01:/blog/2019/03/01/nova-imagem/<p class="first last">Novo site da comunidade Python Portugal</p>
<p>O Python Portugal é uma comunidade de utilizadores portugueses de Python, que tem como objectivo a partilha de experiências, difundir e divulgar a linguagem de programação Python.</p>
<p>O grupo foi criado em 21 de Abril de 2009 e a página da comunidade foi na altura feita em Django mas com o tempo foi ficando desactualizada e era preciso dar-lhe uma cara nova. Decidimos migrar para Pelican, um gerador de páginas estáticas feito com Python e aqui está o novo site.</p>
<p>Qualquer pessoa com interesse pela comunidade e por Python pode participar no desenvolvimento da página fazendo fork ao nosso <a class="reference external" href="https://github.com/pythonpt/pythonpt.github.io-src">repositório</a>.</p>
<p>Se deseja aprender a linguagem de programação Python ou já a usa para os seus projectos, explore esta página e junte-se a nós.</p>
<p>Happy Hacking!</p>
Nova secção de análise de livros2010-12-29T15:41:11+00:002010-12-29T15:41:11+00:00Nuno Mariztag:python.pt,2010-12-29:/blog/2010/12/29/nova-seccao-de-analise-de-livros/<p>A secção de análise de livros já se encontra online.</p>
<p>Neste momento tem cerca de 35 livros de 3 editoras. Para quem tem conta no site tem a possibilidade de comentar e votar nos livros, quem desejar fazer uma análise mais profunda de algum livro, poderá enviar a mesma para …</p><p>A secção de análise de livros já se encontra online.</p>
<p>Neste momento tem cerca de 35 livros de 3 editoras. Para quem tem conta no site tem a possibilidade de comentar e votar nos livros, quem desejar fazer uma análise mais profunda de algum livro, poderá enviar a mesma para a mailing list.</p>
<p>Como sempre contamos com o vosso feedback para reportar eventuais bugs ou melhoramentos.</p>
Secção de análise de livros2010-06-02T14:44:24+01:002010-06-02T14:44:24+01:00Nuno Mariztag:python.pt,2010-06-02:/blog/2010/06/02/seccao-de-analise-de-livros/<p>Estamos a finalizar a aplicação de análise de livros. Nesta aplicação vamos ter uma listagem de livros, na qual os utilizadores podem efectuar votações e comentários, assim como as análises de livros efectuadas pelos membros.</p>
<p>Neste momento já temos uma análise feita pelo <strong>Paulo Köch</strong> do livro "<a class="reference external" href="http://www.packtpub.com/expert-python-programming/book?utm_source=python.pt&utm_medium=bookrev&utm_content=other&utm_campaign=mdb_003547">Expert Python Programming …</a></p><p>Estamos a finalizar a aplicação de análise de livros. Nesta aplicação vamos ter uma listagem de livros, na qual os utilizadores podem efectuar votações e comentários, assim como as análises de livros efectuadas pelos membros.</p>
<p>Neste momento já temos uma análise feita pelo <strong>Paulo Köch</strong> do livro "<a class="reference external" href="http://www.packtpub.com/expert-python-programming/book?utm_source=python.pt&utm_medium=bookrev&utm_content=other&utm_campaign=mdb_003547">Expert Python Programming</a>", esta análise irá online quando a aplicação estiver finalizada.</p>
<p>No mesmo contexto, a <a class="reference external" href="http://www.PacktPub.com/">Packt Publishing</a> está a oferecer descontos nos seus livros, para saber mais detalhes subscreva a nossa <a class="reference external" href="http://groups.google.com/group/python-pt"">mailing list</a>.</p>
DEI Academy2009-09-16T09:32:20+01:002009-09-16T09:32:20+01:00Nuno Mariztag:python.pt,2009-09-16:/blog/2009/09/16/dei-academy/<p>A <a class="reference external" href="http://academy.dei.uc.pt">DEI Academy</a> é um projecto do <a class="reference external" href="http://www.dei.uc.pt">Departamento de Engenharia Informática da Universidade de Coimbra</a>, feito para todos os alunos do secundário que possam estar interessados em seguir informática na Universidade.</p>
<p>Este projecto possui tutoriais interactivos para a aprender a programar.</p>
<p>De salientar a escolha da linguagem de programação Python …</p><p>A <a class="reference external" href="http://academy.dei.uc.pt">DEI Academy</a> é um projecto do <a class="reference external" href="http://www.dei.uc.pt">Departamento de Engenharia Informática da Universidade de Coimbra</a>, feito para todos os alunos do secundário que possam estar interessados em seguir informática na Universidade.</p>
<p>Este projecto possui tutoriais interactivos para a aprender a programar.</p>
<p>De salientar a escolha da linguagem de programação Python.</p>
Django 1.12009-07-29T10:18:23+01:002009-07-29T10:18:23+01:00Nuno Mariztag:python.pt,2009-07-29:/blog/2009/07/29/django-11/<p>Foi lançada a versão 1.1 da framework Django.</p>
<p>Para além das <a class="reference external" href="http://www.djangoproject.com/weblog/2009/jul/28/security/">actualizações de segurança</a> existe uma extensa <a class="reference external" href="http://docs.djangoproject.com/en/dev/releases/1.1/">lista de novidades</a>.</p>
<p>Foi lançada a versão 1.1 da framework Django.</p>
<p>Para além das <a class="reference external" href="http://www.djangoproject.com/weblog/2009/jul/28/security/">actualizações de segurança</a> existe uma extensa <a class="reference external" href="http://docs.djangoproject.com/en/dev/releases/1.1/">lista de novidades</a>.</p>
Python 3.12009-07-02T09:22:02+01:002009-07-02T09:22:02+01:00Nuno Mariztag:python.pt,2009-07-02:/blog/2009/07/02/python-31/<p>Foi lançada no passado dia 27 de Junho a versão 3.1 do Python.</p>
<p>A lista das novidades encontram-se <a class="reference external" href="http://docs.python.org/dev/py3k/whatsnew/3.1.html">aqui</a>.</p>
<p>Foi lançada no passado dia 27 de Junho a versão 3.1 do Python.</p>
<p>A lista das novidades encontram-se <a class="reference external" href="http://docs.python.org/dev/py3k/whatsnew/3.1.html">aqui</a>.</p>
Micro frameworks em Python2009-05-28T10:44:16+01:002009-05-28T10:44:16+01:00Nuno Mariztag:python.pt,2009-05-28:/blog/2009/05/28/micro-frameworks-em-python/<p>As <em>micro frameworks</em> em <a class="reference external" href="http://www.python.org/">Python</a> estão na moda hoje em dia, julgo que têm o seu espaço nomeadamente para pequenos webservices.
Com o <a class="reference external" href="http://www.python.org/dev/peps/pep-0333/">PEP 333</a>, que especifica o <a class="reference external" href="http://www.wsgi.org/">WSGI(Python Web Server Gateway Interface)</a> e a diversidade de módulos existentes para as diversas componentes necessárias para a sua construção, torna …</p><p>As <em>micro frameworks</em> em <a class="reference external" href="http://www.python.org/">Python</a> estão na moda hoje em dia, julgo que têm o seu espaço nomeadamente para pequenos webservices.
Com o <a class="reference external" href="http://www.python.org/dev/peps/pep-0333/">PEP 333</a>, que especifica o <a class="reference external" href="http://www.wsgi.org/">WSGI(Python Web Server Gateway Interface)</a> e a diversidade de módulos existentes para as diversas componentes necessárias para a sua construção, torna a tarefa de contruir uma <em>framework</em> relativamente fácil.
O <a class="reference external" href="http://bitworking.org/">Joe Gregorio</a> exemplifica claramente esta ideia numa entrada no seu blog chamada "<a class="reference external" href="http://bitworking.org/news/Why_so_many_Python_web_frameworks">Why so many Python web frameworks?</a>".</p>
<p>Alguns exemplos de micro frameworks em Python:</p>
<ul class="simple">
<li><a class="reference external" href="http://webpy.org/">web.py</a></li>
<li><a class="reference external" href="http://bobo.digicool.com/">bobo</a></li>
<li><a class="reference external" href="http://github.com/toastdriven/itty/tree/master">itty</a></li>
<li><a class="reference external" href="http://github.com/breily/juno/tree/master">juno</a></li>
<li><a class="reference external" href="http://github.com/simonw/djng/tree/master">djng</a></li>
<li><a class="reference external" href="http://github.com/garethr/mnml/tree/master">mnml</a></li>
<li><a class="reference external" href="http://github.com/JaredKuolt/newf/tree/master">newf</a></li>
</ul>
Bem-vindo2009-05-15T17:23:52+01:002009-05-15T17:23:52+01:00Nuno Mariztag:python.pt,2009-05-15:/blog/2009/05/15/bem-vindo/<p>O Python Portugal é uma comunidade de utilizadores portugueses de <a class="reference external" href="http://www.python.org">Python</a>, que tem como objectivo a partilha de experiências, difundir e divulgar a linguagem de programação <a class="reference external" href="http://www.python.org">Python</a>.</p>
<p>O grupo foi criado em 21 de Abril de 2009 e tem funcionado até agora apenas com uma <a class="reference external" href="http://groups.google.com/group/python-pt">mailing list</a> e uma conta …</p><p>O Python Portugal é uma comunidade de utilizadores portugueses de <a class="reference external" href="http://www.python.org">Python</a>, que tem como objectivo a partilha de experiências, difundir e divulgar a linguagem de programação <a class="reference external" href="http://www.python.org">Python</a>.</p>
<p>O grupo foi criado em 21 de Abril de 2009 e tem funcionado até agora apenas com uma <a class="reference external" href="http://groups.google.com/group/python-pt">mailing list</a> e uma conta de <a class="reference external" href="http://twitter.com/python_pt">Twitter</a>. A página estreia-se hoje apenas com o blog e uma secção de links.
Os futuros planos da página passam por acrescentar algumas secções que julgo importantes, tais como a bolsa de emprego, um planeta com a agregação de entradas de blog dos membros, uma secção de análise de livros e um Wiki.</p>
<p>A página foi criada com a framework <a class="reference external" href="http://www.djangoproject.com/">Django</a> e posteriormente será colocada num repositório público de forma a que os membros colaborem na sua evolução ou para quem esteja interessado em aprender a framework.</p>
<p>Se é um utilizador ou se deseja aprender a linguagem de programação <a class="reference external" href="http://www.python.org">Python</a>, junte-se a nós. Pode começar pelo registo na página e na mailing list.</p>
<p>Divirta-se, <a class="reference external" href="http://mariz.org">Nuno Mariz</a>.</p>