Como preprar seu ambiente de desenvolvimento

Resolvendo dependências

Para que possamos dar início ao desenvolvimento de suas atividades, precisamos criar um ambiente virtual e isolado para instalar as dependências para o desenvolvimento.

Um ambiente virtual, é uma “área” dentro de uma máquina ou até mesmo uma máquina, de modo que o interpretador, as bibliotecas, scripts e tudo mais relacionado a uma linguagem ou ferramenta instalados nele estejam isolados daqueles instalados no ambiente.

Antes de criar a virtualenv, é necessário instalar alguns pacotes de acordo com sua distro:

Ubuntu

Para instalar estes pacotes na sua máquina, execute o comando de instalação de pacotes com o gerenciador de pacotes da sua escolha, utilizaremos o apt, o gerenciador de pacotes padrão do Ubuntu. Você pode ler mais sobre o Ubuntu e seu gerenciador de pacotes aqui.

apt install git make clang g++ libffi-dev libssl-dev libgit2-dev libmariadb-dev \
libmariadbclient-dev libncurses-dev libthread-queue-any-perl libdbus-1-dev \
libdbus-glib-1-dev libldap2-dev libsasl2-dev graphviz-dev libsystemd-dev

No Ubuntu está disponível para instalação as seguintes versões do Python: 3.8 e 3.9. Porém para o desenvolvimento do backend é necessário Python 3.6 pois é a versão atual homologada no CentOS 8, e é necessário utilizamos a mesma versão por questões de compatibilidade de features da linguagem.

Para conseguirmos utilizar a versão necessária precisamos seguir alguns passos.

  • Instalar o python3.9:
apt install python3.9

Instalar o pyenv:

Para instalar o python3.6 será necessário utilizar o pyenv no ambiente de desenvolvimento.

  • O pyenv é um gerenciador de versões simplificado para o Python
  • Primeira etapa é um pré-requisito. Atualizar uma lista de pacotes necessários para que o pyenv possa ser instalado:
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev \
libedit-dev

Para agilizar e simplificar a instalação do pyenv, utilizaremos o pyenv installer, como o nome informa, é um instalador do pyenv para ambientes linux.

  • Execute o comando de curl para realizar o download do executável.
curl https://pyenv.run | bash
  • E reinicie seu shell para que as alterações realizadas pelo executável do pyenv sejam aplicadas:
exec $SHELL
  • Agora atraveś do pyenv, podemos instalar a versão do Python utilizada no desenvolvimento das nossas atividades:
pyenv install 3.6.12
pyenv shell 3.6.12

Fedora

Para instalar estes pacotes na sua máquina, execute o comando de instalação de pacotes com o gerenciador de pacotes da sua escolha, utilizaremos o dnf, o gerenciador de pacotes padrão do Fedora. Você pode ler mais sobre o Fedora e seu gerenciador de pacotes aqui.

  • Recomendados executar todos os comandos como administrador.
sudo dnf install git make rpmdevtools redhat-rpm-config rpm-build createrepo_c clang gcc-c++ libffi-devel openssl-devel \
libgit2-devel mariadb-devel ncurses-devel perl-Thread-Queue glib2-devel dbus-devel openldap-devel graphviz-devel \
systemd-devel python3.6

Como criar a virtualenv

Após finalizar o procedimento de instalação das dependências, podemos criar a virutal env e instalar as dependências de desenvolvimento do nosso projeto em Python.

Estas dependências se tratam das bibliotecas e frameworks que utilizamos durante nosso desenvolvimento e no produto. A especificação destas dependências estão salvas nos arquivos requirements.txt e dev_requirements.txt.

  • No arquivo requirements.txt estão as libs e frameworks necessárias para o funcionamento do nosso código.
  • No arquivo dev_requirements.txt estão as libs utilizadas para o nosso desenvolvimento, como linters, libs de testes, etc.
python3 -m venv venv
source venv/bin/activate
pip3 install -r requirements.txt
pip3 install -r dev_requirements.txt
deactivate
  • O parâmetro -m venv no comando python3 sinaliza que iremos criar um módulo de ambiente virtual.
  • O parâmetro -r do comando pip3 sinaliza que iremos instalar dependências do projeto (libs e frameworks).

As etapas executadas acima só devem ser executadas quando a máquina estiver zerada ou seja, você não tenha criado a virtualenv em sua máquina.

As etapas abaixo são necessárias no dia a dia do desenvolvimento dos projetos da Itflex.

  • Habilitar a venv para abrir o VSCode
cd ~/git/itflex/server/backend
source venv/bin/activate
code .
  • Para desabilitar a venv
deactivate