SlideShare uma empresa Scribd logo
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Python +
Virtualenv
Parte 2 do nosso LAB
Lab vagrant +
Virtualenv
GIT + Python
+ Django +
Pycharm
2
Este Lab foi produzido para ser um estudo prático introdutório para as tecnologias envolvidas com
desenvolvimento Python/Django. Sendo assim não tem intenção de ser um curso ou fonte de referências.
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Porque Python?
Python é uma linguagem de propósito geral de alto nível, multiparadigma, suporta
o paradigma orientado a objetos, imperativo, funcional e procedural. Conta com
um modelo comunitário de desenvolvimento, que é aberto e sem fins lucrativos.
Por ser uma linguagem de alto nível, o Python não requer conhecimentos de
outras linguagens para que se possa trabalhar com ele. A lógica da programação
pode ser aplicada diretamente ao código, o que faz com que seu aprendizado seja
simples e rápido. Python tem uma biblioteca padrão imensa, que contém classes,
métodos e funções para realizar essencialmente qualquer tarefa, desde acesso a
bancos de dados a interfaces gráficas com o usuário.
Adaptado de https://pt.wikipedia.org/wiki/Python
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Como instalar o Python?
A versão mais atual do Python é a 3.7.4.
No windows:
Faça o download e instale https://www.python.org/downloads/windows/
Python 3.7 https://www.python.org/ftp/python/3.7.4/python-3.7.4-amd64.exe
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Python 3 no Windows
Deixe marcadas as 2 opções “Install launcher for all users” e “Add Python 3.7 to PATH”
Escolha a opção Personalizada => “Customize installation”
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Python 3 no Windows
Deixe marcadas todas as opções.
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Python 3 no Windows
Deixe marcadas as opções “Install for all users” e as 4 opções seguintes.
Escolha uma pasta personalizada => “C:Python37”
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Trabalhando com diversas versões
Virtualenv é uma ferramenta simples e poderosa que permite criar ambientes
isolados de desenvolvimento Python, ou seja, torna possível a utilização de
diversas bibliotecas em um mesmo ambiente sem que haja conflitos entre elas.
Ao ativar o ambiente virtual “isolado”, os comandos de instalação e execução
somente afetarão o ambiente virtual ativado.
Para instalar o virtualenv no windows:
Abra o Prompt de comando e digite:
pip install virtualenv
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Criando ambiente virtual - Virtualenv
No windows:
Abra o Prompt de comando na pasta de projetos Python
(C:Usersggti14PycharmProjects) e digite:
virtualenv venv37 -p C:Python37python.exe
Será criado um ambiente virtual “isolado” configurado inicialmente com Python 3.
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Ativando ambiente virtual - Virtualenv
No windows:
Abra o Prompt de comando na pasta de projetos Python
(C:Usersggti14PycharmProjects) e digite:
.venv37Scriptsactivate.bat
Será ativado o ambiente virtual e também é apresentado o prompt:
(venv37) C:Usersggti14PycharmProjects>
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Desativando ambiente virtual
No windows:
Abra o Prompt de comando na pasta de projetos Python
(C:Usersggti14PycharmProjects) e digite:
.venv37Scriptsdeactivate.bat
Será desativado o ambiente virtual e também será atualizado o prompt:
C:Usersggti14PycharmProjects>
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Python e Virtualenv em uma vm
Muitas vezes encontramos dificuldades de instalar ou utilizar o Python no windows
porque já possuímos outros softwares e, mesmo usando o Virtualenv, se torna mais
difícil administrar estes ambientes virtuais diferentes.
Vamos observar que o uso de uma vm (Virtual+vagrant) permite que sejam
instaladas diferentes versões de Python junto com outras bibliotecas sem ter todas
essas restrições que o ambiente Windows apresenta.
Por fim, a escolha do uso do ambiente Python/Django em uma vm (linux) seja
importante para que se tenha um ambiente equivalente do de produção(linux).
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Python e Virtualenv em uma vm
Preparação para instalação na vm
(necessário ter realizado a Parte 1 do LAB):
Com a vm desligada (vagrant halt), edite o arquivo Vagrantfile existente na pasta
C:vagrant_vms
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Python e Virtualenv em uma vm
Devemos manter comentada a linha onde estiver (quase no fim do arquivo):
# SHELL
E acrescentar o trecho logo abaixo dessa linha:
config.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
#Instalar os pacotes básicos
sudo apt-get -y install vim openssh-server git build-essential python-dev python-setuptools libldap2-dev libsasl2-dev
libpq-dev libjpeg-dev libfreetype6-dev zlib1g-dev libssl-dev
#Instalar e configurar virtualenv dev-suap
sudo apt-get -y install python-virtualenv
sudo apt -y install python-pip
mkdir virtualenvs
cd virtualenvs
virtualenv --system-site-packages dev-suap
source dev-suap/bin/activate
pip install django==1.11.10
sudo pip install psycopg2-binary
SHELL
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Python e Virtualenv em uma vm
Para iniciar a vm (box) com as modificações feitas no arquivo Vagrantfile, execute no Prompt de Comando na pasta
c:vagrant_vms:
vagrant up --provider virtualbox
E após a vm estiver ligada execute:
vagrant provision
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Python e Virtualenv em uma vm
O trecho acrescentado já realiza a atualização e instalação de todas as bibliotecas
básicas que iremos precisar. Além disso já cria um ambiente virtual (virtualenv):
config.vm.provision "shell", inline: <<-SHELL
sudo apt-get update
#Instalar os pacotes básicos
sudo apt-get -y install vim openssh-server git build-essential python-dev python-setuptools libldap2-dev
libsasl2-dev libpq-dev libjpeg-dev libfreetype6-dev zlib1g-dev libssl-dev
#Instalar e configurar virtualenv dev-suap
sudo apt-get -y install python-virtualenv
sudo apt -y install python-pip
mkdir virtualenvs
cd virtualenvs
virtualenv --system-site-packages dev-suap
source dev-suap/bin/activate
pip install django==1.11.10
sudo pip install psycopg2-binary
SHELL
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Provision vm - Passo a Passo
Vou explicar como cada linha de comando funciona no provision.
A distribuição do linux instalada é Ubuntu Server e o comando abaixo atualiza todo o
catálogo de pacotes disponíveis para que possamos instalar algo mais recente.
sudo apt-get update
Sempre estaremos atualizando nosso ambiente. O comando abaixo verifica se há
atualizações necessárias e apresenta para atualização. Caso confirme, as
atualizações serão baixadas (download) e instaladas:
sudo apt-get upgrade
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Provision vm - Passo a Passo
O comando abaixo baixaram e instalaram uma lista de aplicativos e bibliotecas.
sudo apt-get -y install vim openssh-server git build-essential python-dev python-setuptools
libldap2-dev libsasl2-dev libpq-dev libjpeg-dev libfreetype6-dev zlib1g-dev libssl-dev
Segue a lista dos mais essenciais:
vim = editor de texto simples e intuitivo. Como a vm roda o ubuntu server, vai ser necessário
criar/editar arquivos de configurações utilizando um editor de texto.
git = aplicativo para realizar ações com repositórios de controle de versão Git
python-dev e outras = programa python e bibliotecas relacionadas
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Provision vm - Passo a Passo
Os comandos abaixo baixaram e instalaram o virtualenv, além de ter criado um
ambiente virtual para o desenvolvimento do nosso projeto.
sudo apt-get -y install python-virtualenv
sudo apt -y install python-pip
mkdir virtualenvs
cd virtualenvs
virtualenv --system-site-packages dev-suap
O nome do ambiente virtual criado foi dev-suap mas para outros projetos você pode
criar seus próprios ambientes virtuais executando o comando abaixo dentro da
pasta /home/vagrant/virtualenvs :
virtualenv meu-projeto-mooc
http://pt.scribd.com/pedrofvieira @pedrofv1e1ra
Provision vm - Passo a Passo
Os comandos abaixo ativaram o ambiente virtual do projeto dev-suap e instalaram
nele o Django com a versão específica, além de instalar uma biblioteca predefinida.
source dev-suap/bin/activate
pip install django==1.11.10
sudo pip install psycopg2-binary
Agora podemos começar a utilizar a vm (box) para os nossos projetos.
Nas próximas etapas vamos ver o uso do GIT, Postgresql e
softwares IDE Python.

Mais conteúdo relacionado

Mais procurados

GIT Básico
GIT BásicoGIT Básico
GIT Básico
André Justi
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
André Justi
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de código
Felipe
 
Testadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de DockerTestadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de Docker
Stefan Teixeira
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
Leandro Silva
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
Vitor Mattos
 
Conhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVCConhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVC
Fabrício Lopes Sanchez
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#
Leandro Silva
 
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
Bruno Tanoue
 
O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
Rodrigo Emereciano
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
André Justi
 
Projeto para a faculdade? Canivete Python resolve!
Projeto para a faculdade? Canivete Python resolve!Projeto para a faculdade? Canivete Python resolve!
Projeto para a faculdade? Canivete Python resolve!
Guilherme Medeiros
 
Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Development
pugpe
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
Henrique Silvestre Souza
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Renato Groff
 
Trabalhando com Módulos no Puppet
Trabalhando com Módulos no PuppetTrabalhando com Módulos no Puppet
Trabalhando com Módulos no Puppet
Jose Augusto Carvalho
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
Mauricio Martins
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
Cesar Augusto Nogueira
 
Ambiente de desenvolvimento com docker e ruby on rails
Ambiente de desenvolvimento com  docker e ruby on railsAmbiente de desenvolvimento com  docker e ruby on rails
Ambiente de desenvolvimento com docker e ruby on rails
SeRHmatica - Sistemas e Serviços
 

Mais procurados (19)

GIT Básico
GIT BásicoGIT Básico
GIT Básico
 
Apresentação Docker
Apresentação DockerApresentação Docker
Apresentação Docker
 
Conceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de códigoConceitos e exemplos em versionamento de código
Conceitos e exemplos em versionamento de código
 
Testadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de DockerTestadores 2015 - O Fantástico Mundo de Docker
Testadores 2015 - O Fantástico Mundo de Docker
 
Uma breve introdução ao Terraform
Uma breve introdução ao TerraformUma breve introdução ao Terraform
Uma breve introdução ao Terraform
 
Xdebug seus problemas acabaram - tdc floripa 2017
Xdebug   seus problemas acabaram - tdc floripa 2017Xdebug   seus problemas acabaram - tdc floripa 2017
Xdebug seus problemas acabaram - tdc floripa 2017
 
Conhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVCConhecendo o NuGet e utilizando com ASP.NET MVC
Conhecendo o NuGet e utilizando com ASP.NET MVC
 
Async/Await Pattern in C#
Async/Await Pattern in C#Async/Await Pattern in C#
Async/Await Pattern in C#
 
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
TDC 2015 - Trilha PHP - Testes e Ambiente de Integração Contínua PHP para o D...
 
O que é Docker?
O que é Docker?O que é Docker?
O que é Docker?
 
Apresentação maven
Apresentação mavenApresentação maven
Apresentação maven
 
Projeto para a faculdade? Canivete Python resolve!
Projeto para a faculdade? Canivete Python resolve!Projeto para a faculdade? Canivete Python resolve!
Projeto para a faculdade? Canivete Python resolve!
 
Coding Dojo e Test Driven Development
Coding Dojo e Test Driven DevelopmentCoding Dojo e Test Driven Development
Coding Dojo e Test Driven Development
 
Git e GitHub - Conceitos Básicos
Git e GitHub - Conceitos BásicosGit e GitHub - Conceitos Básicos
Git e GitHub - Conceitos Básicos
 
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
Docker: Primeiros Passos, Dicas e Truques no Gerenciamento de Containers - Ab...
 
Trabalhando com Módulos no Puppet
Trabalhando com Módulos no PuppetTrabalhando com Módulos no Puppet
Trabalhando com Módulos no Puppet
 
Apresentacao docker
Apresentacao dockerApresentacao docker
Apresentacao docker
 
Docker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnogDocker e suas tecnologias por @cesarnog
Docker e suas tecnologias por @cesarnog
 
Ambiente de desenvolvimento com docker e ruby on rails
Ambiente de desenvolvimento com  docker e ruby on railsAmbiente de desenvolvimento com  docker e ruby on rails
Ambiente de desenvolvimento com docker e ruby on rails
 

Semelhante a Lab python django - parte 2 - python + virtualenv

Técnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em djangoTécnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em django
Mario Chaves
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Thiago Rodrigues
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
lekitamura
 
Virtualenv e Pip
Virtualenv e PipVirtualenv e Pip
Virtualenv e Pip
Renzo Nuccitelli
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Tiago Hillebrandt
 
I educar-manual-de-instalaao
I educar-manual-de-instalaaoI educar-manual-de-instalaao
I educar-manual-de-instalaao
Fabio Junior Novais Silva
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
Marcelo Santos
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDevice
Ricardo Rufino
 
01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdf01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdf
Gustavomacieldesouza2
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuida
Leonardo Kobus
 
Virtualenv e Pip
Virtualenv e PipVirtualenv e Pip
Virtualenv e Pip
Renzo Nuccitelli
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
Fernanda Martins
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
Wellington Silva
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Eliel Simoncelo
 
My first app django
My first app djangoMy first app django
My first app django
Paola Katherine Pacheco
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
Mateus Padua
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
Getup Cloud
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
tdc-globalcode
 
Gdg quality fest 2018 - Metralhando o próprio produto com tudo!
Gdg quality fest 2018 - Metralhando o próprio produto com tudo!Gdg quality fest 2018 - Metralhando o próprio produto com tudo!
Gdg quality fest 2018 - Metralhando o próprio produto com tudo!
Flávio Pimenta
 

Semelhante a Lab python django - parte 2 - python + virtualenv (20)

Técnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em djangoTécnicas para preparação e desenvolvimento de sites em django
Técnicas para preparação e desenvolvimento de sites em django
 
Construção e provisionamento de ambientes de desenvolvimento virtualizados
Construção e provisionamento de ambientes  de desenvolvimento virtualizadosConstrução e provisionamento de ambientes  de desenvolvimento virtualizados
Construção e provisionamento de ambientes de desenvolvimento virtualizados
 
Controlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e SubversionControlando Projetos com Netbeans e Subversion
Controlando Projetos com Netbeans e Subversion
 
Virtualenv e Pip
Virtualenv e PipVirtualenv e Pip
Virtualenv e Pip
 
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPressFerramentas Essenciais para Desenvolvedores de Plugins WordPress
Ferramentas Essenciais para Desenvolvedores de Plugins WordPress
 
I educar-manual-de-instalaao
I educar-manual-de-instalaaoI educar-manual-de-instalaao
I educar-manual-de-instalaao
 
Iniciando com django
Iniciando com djangoIniciando com django
Iniciando com django
 
TDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDeviceTDC2015 - Internet das Coisas - OpenDevice
TDC2015 - Internet das Coisas - OpenDevice
 
Mercurial hg
Mercurial hgMercurial hg
Mercurial hg
 
01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdf01 -Aula IPE - Apresentando o Python.pdf
01 -Aula IPE - Apresentando o Python.pdf
 
Entrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuidaEntrega contínua com arquitetura distribuida
Entrega contínua com arquitetura distribuida
 
Virtualenv e Pip
Virtualenv e PipVirtualenv e Pip
Virtualenv e Pip
 
DevOps Primeiros Passos
DevOps Primeiros PassosDevOps Primeiros Passos
DevOps Primeiros Passos
 
Aplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com DockerAplicações 12 fatores, melhor com Docker
Aplicações 12 fatores, melhor com Docker
 
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
Mercurianos - .Net na Prática - Da instalação até o debug da nossa API em um ...
 
My first app django
My first app djangoMy first app django
My first app django
 
Tutorial Django + Python
Tutorial Django + PythonTutorial Django + Python
Tutorial Django + Python
 
Escalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShiftEscalando aplicação Python usando Getup OpenShift
Escalando aplicação Python usando Getup OpenShift
 
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
TDC2017 | Florianopolis - Trilha DevOps How we figured out we had a SRE team ...
 
Gdg quality fest 2018 - Metralhando o próprio produto com tudo!
Gdg quality fest 2018 - Metralhando o próprio produto com tudo!Gdg quality fest 2018 - Metralhando o próprio produto com tudo!
Gdg quality fest 2018 - Metralhando o próprio produto com tudo!
 

Mais de Pedro Fernandes Vieira

Testando API Rest com Insomnia Core
Testando API Rest com Insomnia CoreTestando API Rest com Insomnia Core
Testando API Rest com Insomnia Core
Pedro Fernandes Vieira
 
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Pedro Fernandes Vieira
 
Lab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantLab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrant
Pedro Fernandes Vieira
 
Internet of Things - Overview
Internet of Things - OverviewInternet of Things - Overview
Internet of Things - Overview
Pedro Fernandes Vieira
 
Automatizando o Preenchimento de Formulários Web Utilizando IMacros for Firefox
Automatizando o Preenchimento de Formulários Web Utilizando IMacros for FirefoxAutomatizando o Preenchimento de Formulários Web Utilizando IMacros for Firefox
Automatizando o Preenchimento de Formulários Web Utilizando IMacros for Firefox
Pedro Fernandes Vieira
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
Pedro Fernandes Vieira
 

Mais de Pedro Fernandes Vieira (6)

Testando API Rest com Insomnia Core
Testando API Rest com Insomnia CoreTestando API Rest com Insomnia Core
Testando API Rest com Insomnia Core
 
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
Como desenvolver uma aplicação Web com django 2.2.13 (Parte 2 de 2)
 
Lab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrantLab python django - parte 1 - windows e vagrant
Lab python django - parte 1 - windows e vagrant
 
Internet of Things - Overview
Internet of Things - OverviewInternet of Things - Overview
Internet of Things - Overview
 
Automatizando o Preenchimento de Formulários Web Utilizando IMacros for Firefox
Automatizando o Preenchimento de Formulários Web Utilizando IMacros for FirefoxAutomatizando o Preenchimento de Formulários Web Utilizando IMacros for Firefox
Automatizando o Preenchimento de Formulários Web Utilizando IMacros for Firefox
 
PostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro VieiraPostgreSQL - Visão Geral - Pedro Vieira
PostgreSQL - Visão Geral - Pedro Vieira
 

Lab python django - parte 2 - python + virtualenv

  • 1. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Python + Virtualenv Parte 2 do nosso LAB Lab vagrant + Virtualenv GIT + Python + Django + Pycharm 2 Este Lab foi produzido para ser um estudo prático introdutório para as tecnologias envolvidas com desenvolvimento Python/Django. Sendo assim não tem intenção de ser um curso ou fonte de referências.
  • 2. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Porque Python? Python é uma linguagem de propósito geral de alto nível, multiparadigma, suporta o paradigma orientado a objetos, imperativo, funcional e procedural. Conta com um modelo comunitário de desenvolvimento, que é aberto e sem fins lucrativos. Por ser uma linguagem de alto nível, o Python não requer conhecimentos de outras linguagens para que se possa trabalhar com ele. A lógica da programação pode ser aplicada diretamente ao código, o que faz com que seu aprendizado seja simples e rápido. Python tem uma biblioteca padrão imensa, que contém classes, métodos e funções para realizar essencialmente qualquer tarefa, desde acesso a bancos de dados a interfaces gráficas com o usuário. Adaptado de https://pt.wikipedia.org/wiki/Python
  • 3. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Como instalar o Python? A versão mais atual do Python é a 3.7.4. No windows: Faça o download e instale https://www.python.org/downloads/windows/ Python 3.7 https://www.python.org/ftp/python/3.7.4/python-3.7.4-amd64.exe
  • 4. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Python 3 no Windows Deixe marcadas as 2 opções “Install launcher for all users” e “Add Python 3.7 to PATH” Escolha a opção Personalizada => “Customize installation”
  • 5. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Python 3 no Windows Deixe marcadas todas as opções.
  • 6. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Python 3 no Windows Deixe marcadas as opções “Install for all users” e as 4 opções seguintes. Escolha uma pasta personalizada => “C:Python37”
  • 7. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Trabalhando com diversas versões Virtualenv é uma ferramenta simples e poderosa que permite criar ambientes isolados de desenvolvimento Python, ou seja, torna possível a utilização de diversas bibliotecas em um mesmo ambiente sem que haja conflitos entre elas. Ao ativar o ambiente virtual “isolado”, os comandos de instalação e execução somente afetarão o ambiente virtual ativado. Para instalar o virtualenv no windows: Abra o Prompt de comando e digite: pip install virtualenv
  • 8. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Criando ambiente virtual - Virtualenv No windows: Abra o Prompt de comando na pasta de projetos Python (C:Usersggti14PycharmProjects) e digite: virtualenv venv37 -p C:Python37python.exe Será criado um ambiente virtual “isolado” configurado inicialmente com Python 3.
  • 9. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Ativando ambiente virtual - Virtualenv No windows: Abra o Prompt de comando na pasta de projetos Python (C:Usersggti14PycharmProjects) e digite: .venv37Scriptsactivate.bat Será ativado o ambiente virtual e também é apresentado o prompt: (venv37) C:Usersggti14PycharmProjects>
  • 10. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Desativando ambiente virtual No windows: Abra o Prompt de comando na pasta de projetos Python (C:Usersggti14PycharmProjects) e digite: .venv37Scriptsdeactivate.bat Será desativado o ambiente virtual e também será atualizado o prompt: C:Usersggti14PycharmProjects>
  • 11. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Python e Virtualenv em uma vm Muitas vezes encontramos dificuldades de instalar ou utilizar o Python no windows porque já possuímos outros softwares e, mesmo usando o Virtualenv, se torna mais difícil administrar estes ambientes virtuais diferentes. Vamos observar que o uso de uma vm (Virtual+vagrant) permite que sejam instaladas diferentes versões de Python junto com outras bibliotecas sem ter todas essas restrições que o ambiente Windows apresenta. Por fim, a escolha do uso do ambiente Python/Django em uma vm (linux) seja importante para que se tenha um ambiente equivalente do de produção(linux).
  • 12. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Python e Virtualenv em uma vm Preparação para instalação na vm (necessário ter realizado a Parte 1 do LAB): Com a vm desligada (vagrant halt), edite o arquivo Vagrantfile existente na pasta C:vagrant_vms
  • 13. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Python e Virtualenv em uma vm Devemos manter comentada a linha onde estiver (quase no fim do arquivo): # SHELL E acrescentar o trecho logo abaixo dessa linha: config.vm.provision "shell", inline: <<-SHELL sudo apt-get update #Instalar os pacotes básicos sudo apt-get -y install vim openssh-server git build-essential python-dev python-setuptools libldap2-dev libsasl2-dev libpq-dev libjpeg-dev libfreetype6-dev zlib1g-dev libssl-dev #Instalar e configurar virtualenv dev-suap sudo apt-get -y install python-virtualenv sudo apt -y install python-pip mkdir virtualenvs cd virtualenvs virtualenv --system-site-packages dev-suap source dev-suap/bin/activate pip install django==1.11.10 sudo pip install psycopg2-binary SHELL
  • 14. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Python e Virtualenv em uma vm Para iniciar a vm (box) com as modificações feitas no arquivo Vagrantfile, execute no Prompt de Comando na pasta c:vagrant_vms: vagrant up --provider virtualbox E após a vm estiver ligada execute: vagrant provision
  • 15. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Python e Virtualenv em uma vm O trecho acrescentado já realiza a atualização e instalação de todas as bibliotecas básicas que iremos precisar. Além disso já cria um ambiente virtual (virtualenv): config.vm.provision "shell", inline: <<-SHELL sudo apt-get update #Instalar os pacotes básicos sudo apt-get -y install vim openssh-server git build-essential python-dev python-setuptools libldap2-dev libsasl2-dev libpq-dev libjpeg-dev libfreetype6-dev zlib1g-dev libssl-dev #Instalar e configurar virtualenv dev-suap sudo apt-get -y install python-virtualenv sudo apt -y install python-pip mkdir virtualenvs cd virtualenvs virtualenv --system-site-packages dev-suap source dev-suap/bin/activate pip install django==1.11.10 sudo pip install psycopg2-binary SHELL
  • 16. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Provision vm - Passo a Passo Vou explicar como cada linha de comando funciona no provision. A distribuição do linux instalada é Ubuntu Server e o comando abaixo atualiza todo o catálogo de pacotes disponíveis para que possamos instalar algo mais recente. sudo apt-get update Sempre estaremos atualizando nosso ambiente. O comando abaixo verifica se há atualizações necessárias e apresenta para atualização. Caso confirme, as atualizações serão baixadas (download) e instaladas: sudo apt-get upgrade
  • 17. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Provision vm - Passo a Passo O comando abaixo baixaram e instalaram uma lista de aplicativos e bibliotecas. sudo apt-get -y install vim openssh-server git build-essential python-dev python-setuptools libldap2-dev libsasl2-dev libpq-dev libjpeg-dev libfreetype6-dev zlib1g-dev libssl-dev Segue a lista dos mais essenciais: vim = editor de texto simples e intuitivo. Como a vm roda o ubuntu server, vai ser necessário criar/editar arquivos de configurações utilizando um editor de texto. git = aplicativo para realizar ações com repositórios de controle de versão Git python-dev e outras = programa python e bibliotecas relacionadas
  • 18. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Provision vm - Passo a Passo Os comandos abaixo baixaram e instalaram o virtualenv, além de ter criado um ambiente virtual para o desenvolvimento do nosso projeto. sudo apt-get -y install python-virtualenv sudo apt -y install python-pip mkdir virtualenvs cd virtualenvs virtualenv --system-site-packages dev-suap O nome do ambiente virtual criado foi dev-suap mas para outros projetos você pode criar seus próprios ambientes virtuais executando o comando abaixo dentro da pasta /home/vagrant/virtualenvs : virtualenv meu-projeto-mooc
  • 19. http://pt.scribd.com/pedrofvieira @pedrofv1e1ra Provision vm - Passo a Passo Os comandos abaixo ativaram o ambiente virtual do projeto dev-suap e instalaram nele o Django com a versão específica, além de instalar uma biblioteca predefinida. source dev-suap/bin/activate pip install django==1.11.10 sudo pip install psycopg2-binary Agora podemos começar a utilizar a vm (box) para os nossos projetos. Nas próximas etapas vamos ver o uso do GIT, Postgresql e softwares IDE Python.