<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Gabriel (Gabu) Bellon</title>
    <description>The latest articles on DEV Community by Gabriel (Gabu) Bellon (@gabubellon).</description>
    <link>https://dev.to/gabubellon</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F239362%2F4edd81bf-034a-42e0-874f-67b3d1452681.jpeg</url>
      <title>DEV Community: Gabriel (Gabu) Bellon</title>
      <link>https://dev.to/gabubellon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/gabubellon"/>
    <language>en</language>
    <item>
      <title>Month Post #1</title>
      <dc:creator>Gabriel (Gabu) Bellon</dc:creator>
      <pubDate>Sun, 31 Oct 2021 00:00:00 +0000</pubDate>
      <link>https://dev.to/gabubellon/month-post-1-3077</link>
      <guid>https://dev.to/gabubellon/month-post-1-3077</guid>
      <description>&lt;h2&gt;
  
  
  um post mensal para todos &lt;del&gt;governar&lt;/del&gt; lembrar do que fiz…
&lt;/h2&gt;

&lt;p&gt;No meio do fervor da &lt;a href="https://2021.pythonbrasil.org.br/"&gt;Python Brasil 2021&lt;/a&gt; em um momento de conversa com o &lt;a href="https://twitter.com/marcorougeth"&gt;@marcorougeth&lt;/a&gt; e &lt;a href="https://rgth.co/pt-br/blog/oss-atualizacao-1/"&gt;lendo&lt;/a&gt; um post no blog dele (dica LEIA o blog dele, vale muito o pena!) gostei da ideia de ter esse foco mensal em escrever. Vou mudar o conceito aqui e criar uma estrutura de “Month Post” (Post Mensal) trazendo alguns pontos de quero trazer, mas não necessiaramente sendo algo técnico e nem sem algo ligado as comunidade de atuo. Também pretendo usar esse post como um “todo list” sobre itens que gostaria de abordar, podendo ser um post que irã sendo evoludo dutante o mês. Pois bem, pontuações feitas, vamos ao pontos do mes&lt;/p&gt;

&lt;h2&gt;
  
  
  2021 - outubro
&lt;/h2&gt;




&lt;ul&gt;
&lt;li&gt;Bots e automatizações [todo: posts sobre];&lt;/li&gt;
&lt;li&gt;Gerencimento da empresa contratada de libras;&lt;/li&gt;
&lt;li&gt;Mediação da mesa de &lt;a href="https://www.youtube.com/watch?v=4xrgUjNRqK4"&gt;Educação Não Formal&lt;/a&gt;;&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;Mudança e customização de tema [todo: post sobre]&lt;/li&gt;
&lt;/ul&gt;




&lt;ul&gt;
&lt;li&gt;Post sobre a Python Brasil 2021&lt;/li&gt;
&lt;li&gt;Organizar a &lt;a href="https://dev.to/wiki"&gt;wiki&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>monthpost</category>
      <category>python</category>
      <category>blog</category>
    </item>
    <item>
      <title>Migrando (e customizando) o tema desse site (WIP)</title>
      <dc:creator>Gabriel (Gabu) Bellon</dc:creator>
      <pubDate>Sun, 31 Oct 2021 00:00:00 +0000</pubDate>
      <link>https://dev.to/gabubellon/migrando-e-customizando-o-tema-desse-site-wip-12bj</link>
      <guid>https://dev.to/gabubellon/migrando-e-customizando-o-tema-desse-site-wip-12bj</guid>
      <description>&lt;h2&gt;
  
  
  escolhendo um novo tema
&lt;/h2&gt;

&lt;p&gt;Queria um tema clean e leve &lt;a href="https://github.com/riggraz/no-style-please"&gt;https://github.com/riggraz/no-style-please&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  mas e o tema antigo ?
&lt;/h2&gt;

&lt;p&gt;Mas o tema antigo tinha umas funções legais&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/YoussefRaafatNasry/portfolYOU"&gt;https://github.com/YoussefRaafatNasry/portfolYOU&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  customizando o tema novo com funções do tema antigo
&lt;/h2&gt;

&lt;p&gt;Agora tem wiki, projetos, apresentações e timeline !!!&lt;/p&gt;

&lt;h2&gt;
  
  
  meta post
&lt;/h2&gt;

&lt;p&gt;Editar usando o github online !!!&lt;/p&gt;

</description>
      <category>site</category>
      <category>jekyll</category>
      <category>githubpagaes</category>
    </item>
    <item>
      <title>Exemplo de Projeto Utilizando Sagemaker MultiModel</title>
      <dc:creator>Gabriel (Gabu) Bellon</dc:creator>
      <pubDate>Fri, 30 Apr 2021 00:00:00 +0000</pubDate>
      <link>https://dev.to/gabubellon/exemplo-de-projeto-utilizando-sagemaker-multimodel-4fc8</link>
      <guid>https://dev.to/gabubellon/exemplo-de-projeto-utilizando-sagemaker-multimodel-4fc8</guid>
      <description>&lt;p&gt;Este é um post feito a muitas mãos de um projeto dentro da Conta Azul junto a AWS&lt;/p&gt;

&lt;p&gt;Leia o artigo &lt;a href="https://aws.amazon.com/pt/blogs/aws-brasil/como-a-conta-azul-criou-um-sistema-de-gerenciamento-e-inferencia-de-modelos-utilizando-o-amazon-sagemaker-multi-model-endpoints/"&gt;aqui&lt;/a&gt;&lt;/p&gt;

</description>
      <category>aws</category>
      <category>python</category>
      <category>sagemaker</category>
      <category>datascience</category>
    </item>
    <item>
      <title>Pessoas + Tecnologia &gt; Pandemia</title>
      <dc:creator>Gabriel (Gabu) Bellon</dc:creator>
      <pubDate>Tue, 03 Nov 2020 03:00:00 +0000</pubDate>
      <link>https://dev.to/gabubellon/pessoas-tecnologia-pandemia-5bna</link>
      <guid>https://dev.to/gabubellon/pessoas-tecnologia-pandemia-5bna</guid>
      <description>&lt;p&gt;Senti falta dos abraços e aperto de mão das &lt;strong&gt;&lt;em&gt;PESSOAS&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;que não puder ter ou dar&lt;/code&gt;…  &lt;/p&gt;

&lt;p&gt;Senti falta de rever &lt;strong&gt;&lt;em&gt;PESSOAS&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;que a um ano eu não via&lt;/code&gt;….&lt;br&gt;&lt;br&gt;
&lt;em&gt;mas como se apenas tivesse uma semana passado.&lt;/em&gt;  &lt;/p&gt;

&lt;p&gt;Senti falta de conhecer &lt;strong&gt;&lt;em&gt;PESSOAS&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;que eu já conhecia&lt;/code&gt;…&lt;br&gt;&lt;br&gt;
Senti falta de reconhecer &lt;strong&gt;&lt;em&gt;PESSOAS&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;que eu ainda não conhecia&lt;/code&gt;…  &lt;/p&gt;

&lt;p&gt;Mas achei nas &lt;strong&gt;&lt;em&gt;PESSOAS&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;code&gt;a energia e felicidade !&lt;/code&gt;&lt;br&gt;&lt;br&gt;
Mas eu achei mas &lt;strong&gt;&lt;em&gt;PESSOAS&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;code&gt;A COMUNIDADE !&lt;/code&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;Mesmo longe,&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;code&gt;estamos PERTO !&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Mesmo separados,&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;code&gt;estamos JUNTOS !&lt;/code&gt;&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
Mesmos não nos vendo,&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;code&gt;estamos nos OLHANDO !&lt;/code&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;E a tecnologia não nos faz &lt;strong&gt;&lt;em&gt;PESSOAS&lt;/em&gt;&lt;/strong&gt; …&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;code&gt;A tecnologia ajuda a nos manter PESSOAS !&lt;/code&gt;&lt;/strong&gt;  &lt;/p&gt;

&lt;p&gt;A um tempo eu aprendi que&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;em&gt;PESSOAS &amp;gt; Tecnologia&lt;/em&gt;&lt;/strong&gt; …  &lt;/p&gt;

&lt;p&gt;Hoje eu descobri que&lt;br&gt;&lt;br&gt;
&lt;strong&gt;&lt;code&gt;PESSOAS + Tecnologia &amp;gt; Pandemia !!&lt;/code&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Apontar uma branch de um fork para a branch principal do repo original</title>
      <dc:creator>Gabriel (Gabu) Bellon</dc:creator>
      <pubDate>Mon, 31 Aug 2020 03:00:00 +0000</pubDate>
      <link>https://dev.to/gabubellon/apontar-uma-branch-de-um-fork-para-a-branch-principal-do-repo-original-5g17</link>
      <guid>https://dev.to/gabubellon/apontar-uma-branch-de-um-fork-para-a-branch-principal-do-repo-original-5g17</guid>
      <description>&lt;h2&gt;
  
  
  Fork sempre atualizado !
&lt;/h2&gt;

&lt;p&gt;Uma pequena dica para quando trabalhar com forks de repositórios e apontar &lt;strong&gt;branch principal do seu fork&lt;/strong&gt; (ou qualquer outra) para a &lt;strong&gt;branch principal do repositório original.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Isso ajuda a manter seu código no fork sempre na versão mais atualizada do repositório original, permitindo que suas customizações e merges sejam mais práticos&lt;/p&gt;

&lt;h3&gt;
  
  
  Configurando os remotes
&lt;/h3&gt;

&lt;p&gt;Após realizar o &lt;a href="https://docs.github.com/en/github/getting-started-with-github/fork-a-repo"&gt;fork&lt;/a&gt; de um repositório e o &lt;a href="https://docs.github.com/en/github/creating-cloning-and-archiving-repositories/cloning-a-repository"&gt;clone&lt;/a&gt; para sua máquina local, você pode executar em um terminal o comando &lt;code&gt;git remote -v&lt;/code&gt;, o mesmo ira retornar para quais remotes o repositório está apontando.&lt;/p&gt;

&lt;p&gt;Inicialmente temos apenas o remote do nosso fork:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git remote -v
&amp;gt; origin    git@github.com:&amp;lt;your_git_account&amp;gt;/&amp;lt;repo&amp;gt;.git (fetch)
&amp;gt; origin    git@github.com:&amp;lt;your_git_account&amp;gt;/&amp;lt;repo&amp;gt;.git (push)

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Com o comando &lt;code&gt;git remote add&lt;/code&gt; podemos incluir um novo remote, no caso vamos adicionar o repositório original, mas poderiamos adicionar qualquer outro fork, ou apontas para nosso fork para vários serviços git ao mesmo tempo.Ao executarmos a adição e na sequência um &lt;code&gt;git remote -v&lt;/code&gt; agora vemos que o nosso fork tem mais de um remote configurado.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ git remote add upstream git@github.com:&amp;lt;origin_account&amp;gt;/&amp;lt;repo&amp;gt;.git
$ git remote -v
&amp;gt; origin    git@github.com:&amp;lt;your_git_account&amp;gt;/&amp;lt;repo&amp;gt;.git (fetch)
&amp;gt; origin    git@github.com:&amp;lt;your_git_account&amp;gt;/&amp;lt;repo&amp;gt;.git (push)
&amp;gt; upstream  git@github.com:&amp;lt;original_git_account&amp;gt;/&amp;lt;repo&amp;gt;.git (fetch)
&amp;gt; upstream  git@github.com:&amp;lt;original_git_account&amp;gt;/&amp;lt;repo&amp;gt;.git (push) 

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Executamos um &lt;code&gt;fetch&lt;/code&gt; para trazer todas as branchs de todos os remotes para nosso fork&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git fetch upstream

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Branchs atualizadas !
&lt;/h3&gt;

&lt;p&gt;Agora podemos apontar a branch principal do nosso fork para o repositório original. Primeiro criamos uma branch temporária e movemos para ela:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout -b tmp

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Na sequência apagamos a &lt;strong&gt;&lt;em&gt;branch principal do nosso fork:&lt;/em&gt;&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch -D &amp;lt;main_branch_fork&amp;gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Logo após &lt;strong&gt;&lt;em&gt;criamos&lt;/em&gt;&lt;/strong&gt; novamente uma branch com o mesmo nome no nosso fork, mas apontando para a branch principal do repositório original:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout upstream/&amp;lt;main_origin_repo&amp;gt; -b &amp;lt;main_branch_fork&amp;gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Pra finalizar excluimos a branch temporária&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git branch -D tmp

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Ou se preferir apenas criar uma nova branch no seu fork, mantendo a sua principal, basta criar uma nova branch:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git checkout upstream/&amp;lt;main_origin_repo&amp;gt; -b &amp;lt;new_branch_name&amp;gt;

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Com isso agora podemos sempre executar um &lt;code&gt;git pull &amp;lt;new_branch_name&amp;gt; ou &amp;lt;main_branch_fork&amp;gt;&lt;/code&gt; e teremos em nosso fork o código do repositório original atualizado.&lt;/p&gt;

&lt;p&gt;Para mais detalhes a &lt;a href="https://docs.github.com/pt/github/collaborating-with-issues-and-pull-requests/configuring-a-remote-for-a-fork"&gt;documentação&lt;/a&gt; do GitHub pode ajudar.&lt;/p&gt;

</description>
      <category>tipstricks</category>
      <category>github</category>
      <category>git</category>
    </item>
    <item>
      <title>Testando do Forestry.io</title>
      <dc:creator>Gabriel (Gabu) Bellon</dc:creator>
      <pubDate>Sun, 16 Aug 2020 03:00:00 +0000</pubDate>
      <link>https://dev.to/gabubellon/testando-do-forestry-io-23f0</link>
      <guid>https://dev.to/gabubellon/testando-do-forestry-io-23f0</guid>
      <description>&lt;h2&gt;
  
  
  Post pelo Forestry.io !
&lt;/h2&gt;

&lt;p&gt;Esse é apenas um post teste para verificar se o Forestry.io está configurado corretamente&lt;/p&gt;

&lt;h3&gt;
  
  
  O que é o Forestry.io ?
&lt;/h3&gt;

&lt;p&gt;Forestry.io é um criador de site estáticos que se liga a um repositório git, permitindo que se tenha uma interface de escrita online e ainda tenha um controle de versão do seu site (e podendo gerenciar ele localmente se quiser).&lt;/p&gt;

&lt;p&gt;Isso ajuda a pode criar textos e posts de qualquer navegados e ainda deixar ter um site customizável pelo git .&lt;/p&gt;

&lt;p&gt;Vou montar um tutoria de como configurei o meu logo mais, por enquanto isso é um teste para ver como vai ficar as informações.&lt;/p&gt;

</description>
      <category>blog</category>
      <category>online</category>
      <category>forestryio</category>
    </item>
    <item>
      <title>Combinando o virtualenvwarpper com o pyenv</title>
      <dc:creator>Gabriel (Gabu) Bellon</dc:creator>
      <pubDate>Fri, 10 Jan 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/gabubellon/combinando-o-virtualenvwarpper-com-o-pyenv-9j2</link>
      <guid>https://dev.to/gabubellon/combinando-o-virtualenvwarpper-com-o-pyenv-9j2</guid>
      <description>&lt;h1&gt;
  
  
  virtualenvwarpper e pyenv
&lt;/h1&gt;

&lt;p&gt;O virtualenvwarpper é um plugin que que cria alguns a facilitadores e atalhos para utilizar ambientes virtuais com o python. Mais detalhes na documentação oficial: &lt;a href="https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html"&gt;https://virtualenvwrapper.readthedocs.io/en/latest/command_ref.html&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Combinando o mesmo com o pyenv temos o &lt;em&gt;pyenv-virtualenvwrapper&lt;/em&gt;, um plugin do pyenv que permite criar ambientes virtuais de forma rápida e prática utilizando todas as versões de python gerenciadas pelo pyenv.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Para Ler na antes:&lt;/strong&gt; &lt;a href="https://dev.to/blog/pyenv"&gt;Instalando e utilizando o pyenv&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Instalando pyenv-virtualenvwrapper
&lt;/h2&gt;

&lt;p&gt;A instalação é realizada seguindo as recomendações do repositório oficial &lt;a href="https://github.com/pyenv/pyenv-virtualenvwrapper"&gt;https://github.com/pyenv/pyenv-virtualenvwrapper&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As versões de python &lt;code&gt;global&lt;/code&gt; do pyenv precisam ter o &lt;code&gt;virtualenvwrapper&lt;/code&gt; instalados:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#pip e pip3 caso tenha python2.7 e python3 simultaneamente.
pip install setuptools
pip install virtualenvwrapper
pip3 install setuptools
pip3 install virtualenvwrapper

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Instalando o &lt;em&gt;pyenv-virtualenvwrapper&lt;/em&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#$(pyenv root) é o a variável do pyenv que indica onde o mesmo está instalado. 
git clone https://github.com/pyenv/pyenv-virtualenvwrapper.git $(pyenv root)/plugins/pyenv-virtualenvwrapper

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;on :&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;É necessário modifcar o arquivo de configuração de seu interpretador de comandas (.bashrc para o bash ou .zshrc para zsh/ohmyzsh) e adicionar algumas linhas antes e depois as configurações do pyenv&lt;/p&gt;

&lt;p&gt;Adicionar antes:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Configurações do virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs #virtualenvs folder
source $HOME/.local/bin/virtualenvwrapper.sh #virtualenvwrapper script location

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Adicionar depois:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#deixar explicito para o pyenv o uso do virtualenvwrapper
export PYENV_VIRTUALENVWRAPPER_PREFER_PYVENV="true"

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;No final terá algo similar a:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;#Configurações do virtualenvwrapper
export WORKON_HOME=$HOME/.virtualenvs #virtualenvs folder
source $HOME/.local/bin/virtualenvwrapper.sh #virtualenvwrapper script location

#Bloco do pyenv já existente no arquivo
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"

#deixar explicito para o pyenv o uso do virtualenvwrapper
export PYENV_VIRTUALENVWRAPPER_PREFER_PYVENV="true"

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;h3&gt;
  
  
  Exemplo de uso pyenv-virtualenvwrapper
&lt;/h3&gt;

&lt;p&gt;No exemplo a seguir estamos configurando a versão global do python para a &lt;code&gt;miniconda3-latest&lt;/code&gt;, após isso é criado um virutalenv com o virtualenvwrapper (&lt;code&gt;test_conda&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Voltamos a versão global do python para a &lt;code&gt;system e 3.7.4&lt;/code&gt;, acessamos o virtualenv criado (&lt;code&gt;test_conda&lt;/code&gt;) e verificamos que o mesmo foi criado utilizando o python da instalação do &lt;code&gt;miniconda3-latest&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Um novo virtualenv é criado (&lt;code&gt;test_2.7&lt;/code&gt;) e ativado, validando que o mesmo utilizou a versão de python configurada como padrão (&lt;code&gt;system&lt;/code&gt;)&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ pyenv global
&amp;gt; system
&amp;gt; 3.7.4
&amp;gt;
$ pyenv global miniconda3-latest
$ (miniconda3-latest) 
$ python
&amp;gt; Python 3.7.4 (default, Aug 13 2019, 15:17:50)
&amp;gt; [Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;&amp;gt; exit()
&amp;gt;
$ (miniconda3-latest)
$ mkvirtualenv test_conda
&amp;gt; WARNING: the pyenv script is deprecated in favour of `python3.7 -m venv`
&amp;gt; (miniconda3-latest)
&amp;gt; $ pyenv global system 3.7.4
&amp;gt;
$ workon test_conda
&amp;gt; (test_conda)
$ python
&amp;gt; Python 3.7.4 (default, Aug 13 2019, 15:17:50)
&amp;gt; [Clang 4.0.1 (tags/RELEASE_401/final)] :: Anaconda, Inc. on darwin
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;&amp;gt; exit()
&amp;gt; (test_conda) 
$ deactivate
&amp;gt;
$ python
&amp;gt; WARNING: Python 2.7 is not recommended.
&amp;gt; This version is included in macOS for compatibility with legacy software.
&amp;gt; Future versions of macOS will not include Python 2.7.
&amp;gt; Instead, it is recommended that you transition to using 'python3' from within Terminal.
&amp;gt; 
&amp;gt; Python 2.7.16 (default, Dec 13 2019, 18:00:32)
&amp;gt; [GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.32.4) (-macos10.15-objc-s on darwin
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;&amp;gt; exit()
&amp;gt;
$ mkvirtualenv test_2.7
&amp;gt; New python executable in /Users/gabriel.bellon/.virtualenvs/test_2.7/bin/python
&amp;gt; Installing setuptools, pip, wheel...
&amp;gt; done.
&amp;gt; virtualenvwrapper.user_scripts creating /Users/gabriel.bellon/.virtualenvs/test_2.7/bin/predeactivate
&amp;gt; virtualenvwrapper.user_scripts creating /Users/gabriel.bellon/.virtualenvs/test_2.7/bin/postdeactivate
&amp;gt; virtualenvwrapper.user_scripts creating /Users/gabriel.bellon/.virtualenvs/test_2.7/bin/preactivate
&amp;gt; virtualenvwrapper.user_scripts creating /Users/gabriel.bellon/.virtualenvs/test_2.7/bin/postactivate
&amp;gt; virtualenvwrapper.user_scripts creating /Users/gabriel.bellon/.virtualenvs/test_2.7/bin/get_env_details
&amp;gt; (test_2.7) 
&amp;gt; $ python
&amp;gt; WARNING: Python 2.7 is not recommended.
&amp;gt; This version is included in macOS for compatibility with legacy software.
&amp;gt; Future versions of macOS will not include Python 2.7.
&amp;gt; Instead, it is recommended that you transition to using 'python3' from within Terminal.
&amp;gt; 
&amp;gt; Python 2.7.16 (default, Dec 13 2019, 18:00:32)
&amp;gt; [GCC 4.2.1 Compatible Apple LLVM 11.0.0 (clang-1100.0.32.4) (-macos10.15-objc-s on darwin
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;&amp;gt; exit()
&amp;gt; (test_2.7) 
$ deactivate
&amp;gt; 
$ pyenv global
&amp;gt; system
&amp;gt; 3.7.4

&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Uma vez com a configurações criadas é testada, agora fica prático realizar o gerenciamento de múltiplos projetos python com diferentes versões.Com o uso do &lt;em&gt;pyenv&lt;/em&gt; e do &lt;em&gt;pyenv-virtualenvwrapper&lt;/em&gt; criar combinações de instalações e ambientes virtuais padrões para qualquer situação de projeto.&lt;/p&gt;

</description>
      <category>python</category>
      <category>pyenv</category>
    </item>
    <item>
      <title>Instalando e utilizando o pyenv</title>
      <dc:creator>Gabriel (Gabu) Bellon</dc:creator>
      <pubDate>Wed, 01 Jan 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/gabubellon/instalando-e-utilizando-o-pyenv-1nhm</link>
      <guid>https://dev.to/gabubellon/instalando-e-utilizando-o-pyenv-1nhm</guid>
      <description>&lt;h1&gt;
  
  
  pyenv
&lt;/h1&gt;

&lt;p&gt;Pyenv é um gerenciador criado para controlar múltiplas versões de python em um mesmo ambiente.O mesmo permite ter versões distintas sendo executadas, além de se combinar com a criação de ambientes virtuais.&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalando o pyenv
&lt;/h2&gt;

&lt;p&gt;Basta seguir as recomendações do repositório oficial:&lt;a href="https://github.com/pyenv/pyenv#basic-github-checkout" rel="noopener noreferrer"&gt;https://github.com/pyenv/pyenv#basic-github-checkout&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ou utilizar um script de instalação que auxila em algumas configurações:&lt;a href="https://github.com/pyenv/pyenv-installer" rel="noopener noreferrer"&gt;https://github.com/pyenv/pyenv-installer&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

#Executando pela instalação purta 
$ curl https://pyenv.run | bash



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;ou&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

#Utilizando o script de instalação
$ curl -L https://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;É necessário modificar o arquivo de configuração de seu interpretador de comandas (.bashrc para o bash ou .zshrc para zsh/ohmyzsh) e adicionar os caminhos de path para o pyenv:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
#Aqui já ativando o virtualenv para funcionar nativamente
eval "$(pyenv virtualenv-init -)"



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Abra um novo terminal (ou execute um &lt;code&gt;source .bashrc&lt;/code&gt; por exemplo) e execute o comando para verificar a instalação:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ pyenv



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Deve retornar algo parecido dependendo da versão atual:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fgabubellon.me%2Fassets%2Fimgs%2Fpyenv01.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/http%3A%2F%2Fgabubellon.me%2Fassets%2Fimgs%2Fpyenv01.png" alt="pyenvcmd"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Utilizando o pyenv
&lt;/h2&gt;

&lt;p&gt;Seguem alguns comandos e exemplos utéis para utilizar o pyenv.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;pyenv version&lt;/code&gt;: exibe a versão\versões corrente do python sendo utilizadas;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pyenv versions&lt;/code&gt;: lista todas versões de python instaladas;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pyenv global&lt;/code&gt;: lista a versão\versões globais de python;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pyenv global version1 &amp;lt;version2...versionN&amp;gt;&lt;/code&gt;: define quais as versões e ordem a serem definida como global;&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;pyenv install &amp;lt;version&amp;gt;&lt;/code&gt;: instala uma versão de python&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Exemplos
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Listar a versão corrente (&lt;code&gt;system&lt;/code&gt;):&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ pyenv versions
&amp;gt; system (set by /home/gabriel/.pyenv/version)



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Instalar a versão &lt;code&gt;python 3.5.7&lt;/code&gt;:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ pyenv install 3.5.7 
&amp;gt; Downloading Python-3.5.7.tar.xz...
&amp;gt; -&amp;gt; https://www.python.org/ftp/python/3.5.7/Python-3.5.7.tar.xz
&amp;gt; Installing Python-3.5.7...
&amp;gt; Installed Python-3.5.7 to /home/gabriel/.pyenv/versions/3.5.7



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Listar as versões instaladas (&lt;code&gt;system&lt;/code&gt; e &lt;code&gt;3.5.7&lt;/code&gt;):&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ pyenv versions
&amp;gt; * system (set by /home/gabriel/.pyenv/version)
&amp;gt; 3.5.7 (set by /home/gabriel/.pyenv/version)



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;O símbolo &lt;code&gt;*&lt;/code&gt; indica a versão definida como global, que pode também pode ser verificada com o comando:&lt;/p&gt;
&lt;/blockquote&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ pyenv global
&amp;gt; system



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Isso indica que todos os comandos pythons (&lt;em&gt;pip, pip3 python, python3, etc.&lt;/em&gt;) serão executados pela versão &lt;code&gt;system&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Modificando a versão global para a versão &lt;code&gt;3.5.7&lt;/code&gt; e verificando a mesma:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ pyenv global 3.5.7; pyenv versions
&amp;gt; system
&amp;gt; * 3.5.7 (set by /home/gabriel/.pyenv/version)



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Executando os comandos &lt;code&gt;python&lt;/code&gt;, &lt;code&gt;python3&lt;/code&gt; e &lt;code&gt;python3.5&lt;/code&gt; (irá executar a versão &lt;code&gt;3.5.7&lt;/code&gt;):&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ python
&amp;gt; Python 3.5.7 (default, Jun 21 2019, 17:36:06) 
&amp;gt; [GCC 7.4.0] on linux
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;
&amp;gt; ...
$ python3
Python 3.5.7 (default, Jun 21 2019, 17:36:06) 
[GCC 7.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;  
&amp;gt; ...
$ python3.5
&amp;gt; Python 3.5.7 (default, Jun 21 2019, 17:36:06)
&amp;gt; [GCC 7.4.0] on linux
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Modificando a versão global para as duas (&lt;code&gt;3.57&lt;/code&gt; e &lt;code&gt;system&lt;/code&gt;) e resolvendo nessa ordem:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ pyenv global 3.5.7 system; pyenv global
&amp;gt; 3.5.7
&amp;gt; system



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Executando o comando &lt;code&gt;python&lt;/code&gt; e &lt;code&gt;python3.6&lt;/code&gt; e &lt;code&gt;python2.7&lt;/code&gt;:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ python
&amp;gt; Python 3.5.7 (default, Jun 21 2019, 17:36:06) 
&amp;gt; [GCC 7.4.0] on linux
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;
&amp;gt; ...
$ python3.6
&amp;gt; Python 3.6.8 (default, Jan 14 2019, 11:02:34) 
&amp;gt; [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt;&amp;gt;&amp;gt;
&amp;gt; ...
$ python2.7
&amp;gt; Python 2.7.15+ (default, Nov 27 2018, 23:36:35)
&amp;gt; [GCC 7.3.0] on linux2
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;&amp;gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;A versão &lt;code&gt;3.5.7&lt;/code&gt; é reconhecida como inicial, resolvendo o comando&lt;code&gt;python&lt;/code&gt;,sendo o comandos &lt;code&gt;python3.6&lt;/code&gt; e &lt;code&gt;python2.7&lt;/code&gt; resolvidos pela versão &lt;code&gt;system&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Invertendo as ordens das versões (&lt;code&gt;system&lt;/code&gt; e depois &lt;code&gt;3.5.7&lt;/code&gt;):&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ pyenv global system 3.5.7; pyenv global
&amp;gt; system
&amp;gt; 3.5.7



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Executando o comandos novamente &lt;code&gt;python&lt;/code&gt; e &lt;code&gt;python3&lt;/code&gt; e &lt;code&gt;python3.5&lt;/code&gt;:&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;

$ python
&amp;gt; Python 2.7.15+ (default, Nov 27 2018, 23:36:35) 
&amp;gt; [GCC 7.3.0] on linux2
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&amp;gt; (...)
$ python3
&amp;gt; Python 3.6.8 (default, Jan 14 2019, 11:02:34) 
&amp;gt; [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.
&amp;gt; &amp;gt;&amp;gt;&amp;gt;
&amp;gt; (...)
$ python3.5
&amp;gt; Python 3.5.7 (default, Jun 21 2019, 17:36:06) 
&amp;gt; [GCC 7.4.0] on linux
&amp;gt; Type "help", "copyright", "credits" or "license" for more information.&amp;gt;
&amp;gt; &amp;gt;&amp;gt;&amp;gt;



&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;A versão inicial (&lt;code&gt;system&lt;/code&gt;) resolve os comandos &lt;code&gt;python&lt;/code&gt;e &lt;code&gt;python3&lt;/code&gt;, sendo que o comando &lt;code&gt;python3.5&lt;/code&gt; é resolvido pela versão também definida como global (&lt;code&gt;3.5.7&lt;/code&gt;)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;**Portanto a ordem de versões para `pyenv global v1  será a ordem que os comandas serão interpretados, fazendo com que possamos ter várias versões de python simultâneas e sem gerar concorrência.**&lt;/p&gt;

&lt;p&gt;Para mais detalhes, documentações e exemplos consulte o repositório oficial da ferramenta: &lt;a href="https://github.com/pyenv/pyenv" rel="noopener noreferrer"&gt;https://github.com/pyenv/pyenv&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Para Ler na sequência:&lt;/strong&gt; &lt;a href="https://dev.to/blog/virtualenvwarpper-pyenv"&gt;Combinando o virtualenvwarpper com o pyenv&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>python</category>
      <category>pyenv</category>
    </item>
  </channel>
</rss>
