1. Python
1.1. Introdução
O desenvolvimento em Python frequentemente requer a instalação de dependências e
pacotes adicionais. Devido a potenciais conflitos de versão e incompatibilidades entre
dependências, a instalação global de todos os pacotes no sistema operacional não é
recomendada. A prática ideal consiste na criação de ambientes virtuais isolados,
utilizando gerenciadores de pacotes como venv ou conda. Essa abordagem permite a
instalação de pacotes específicos para cada projeto, evitando conflitos e garantindo a
portabilidade e reprodutibilidade do ambiente de desenvolvimento.
1.2. Ambiente Virtuais
Todos os comandos aqui exemplificados podem ser executados dentro de um container.
Nota
Tanto o venv quanto o conda podem ser instalados e utilizados dentro de
containers, permitindo a criação de ambientes Python isolados e portáveis. Para
otimizar o tamanho da imagem e garantir a compatibilidade, a imagem base
docker://python:alpine é uma escolha eficiente. Essa imagem, baseada em Alpine
Linux, oferece um ambiente mínimo com o Python pré-instalado, ideal para a
instalação de gerenciadores de pacotes e a criação de ambientes virtuais específicos
para cada projeto.
1.2.1. Python venv
Neste item será descrito como criar, atualizar, instalar pacotes e desativar o ambiente virtual.
1.2.1.1. Criando um ambiente virtual
Como exemplo, será criado um ambiente virtual para um projeto e será chamado projeto1.
Depois de criado, basta carregar o ambiente com o comando source e atualizando o
programa pip.
[user1@sismom-1 ~]$ python -m venv .venv/projeto1
[user1@sismom-1 ~]$ source .venv/projeto1/bin/activate
(projeto1) [user1@sismom-1 ~]$ pip list
Package Version
------- -------
pip 24.0
(projeto1) [user1@sismom-1 ~]$ pip install --upgrade pip
Requirement already satisfied: pip in ./.venv/projeto1/lib/python3.12/site-packages (24.0)
Collecting pip
Downloading pip-25.3-py3-none-any.whl.metadata (4.7 kB)
Downloading pip-25.3-py3-none-any.whl (1.8 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.8/1.8 MB 31.7 MB/s eta 0:00:00
Installing collected packages: pip
Attempting uninstall: pip
Found existing installation: pip 24.0
Uninstalling pip-24.0:
Successfully uninstalled pip-24.0
Successfully installed pip-25.3
(projeto1) [user1@sismom-1 ~]$
Nota
Note que quanto o ambiente virtual é ativado o prompt muda e passa a incluir o
nome do ambiente (projeto1) [user1@sismom-1 ~]$.
1.2.1.2. Instalando pacotes
Para instalar os pacotes em Python, utilize o comando pip install <pacote>.
A seguir é mostrado como instalar o pacote numpy no ambiente projeto1.
(projeto1) [user1@sismom-1 ~]$ pip install numpy
Collecting numpy
Downloading numpy-2.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.metadata (62 kB)
Downloading numpy-2.3.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (16.6 MB)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 16.6/16.6 MB 41.6 MB/s 0:00:00
Installing collected packages: numpy
Successfully installed numpy-2.3.5
(projeto1) [user1@sismom-1 ~]$
1.2.1.3. Desativando o ambiente virtual
Para desativar o ambiente basta digitar o comando deactivate.
(projeto1) [user1@sismom-1 ~]$ deactivate
[user1@sismom-1 ~]$
1.2.2. Conda
O Conda, um poderoso gerenciador de pacotes e ambientes, é distribuído em duas versões
principais: Anaconda e Miniconda. Anaconda é uma distribuição abrangente,
amplamente utilizada em ciência de dados e aprendizado de máquina, que inclui mais de 300
pacotes pré-instalados. No entanto, para projetos que exigem controle granular sobre as
dependências e um ambiente mais enxuto, o Miniconda é a opção recomendada. Sua
instalação é mais rápida e permite a instalação seletiva de pacotes, otimizando o espaço
em disco e garantindo que apenas as bibliotecas essenciais para a aplicação sejam
incluídas.
Nota
A principio não é necessário instalar o miniconda na sua conta, pois o mesmo já
está instalado e pode ser acessado através do comando module load. Pode-se listar
todos os módulos instalados com o comando module avail ou procurar um módulo com o
comando module spider.
[user1@sismom-1 ~]# module spider conda
----------------------------------------------------------------------------
miniconda3: miniconda3/py313_25.9.1
----------------------------------------------------------------------------
This module can be loaded directly: module load miniconda3/py313_25.9.1
Help:
Sets up the paths you need to use miniconda python.
[user1@sismom-1 ~]# module load miniconda3
[user1@sismom-1 ~]# module list
Currently Loaded Modules:
1) miniconda3/py313_25.9.1
[user1@sismom-1 ~]#
1.2.2.1. Criando um ambiente virtual
[user1@sismom-1 ~]$ conda create --name projeto1
Channels:
- defaults
Platform: linux-64
Collecting package metadata (repodata.json): done
Solving environment: done
## Package Plan ##
environment location: /home/user1/.conda/envs/projeto1
Proceed ([y]/n)?
Preparing transaction: done
Verifying transaction: done
Executing transaction: done
#
# To activate this environment, use
#
# $ conda activate projeto1
#
# To deactivate an active environment, use
#
# $ conda deactivate
[user1@sismom-1 ~]#
Atenção
Ao tentar ativar um ambiente Conda recém-criado, é possível que ocorra um erro
caso o comando conda init não tenha sido executado previamente. Esse comando é
fundamental para inicializar o Conda no shell em uso, configurando as variáveis
de ambiente e os scripts necessários para o correto funcionamento do gerenciador de
ambientes. A ausência dessa inicialização impede que o Conda localize e ative o
ambiente desejado, resultando em um erro.
[user1@sismom-1 ~]$ conda activate projeto1
CondaError: Run 'conda init' before 'conda activate'
[user1@sismom-1 ~]$ conda init
modified /home/user1/.bashrc
==> For changes to take effect, close and re-open your current shell. <==
[user1@sismom-1 ~]#
O conda init alterou o arquivo .bashrc. Logo, é necessário recarrega-lo
abrindo um novo shell ou executando o comando source ~/.bashrc.
Nota
Esse comando só é necessário executar apenas uma vez, logo após a execução
do conda init.
Após recarregar ou abrir um novo shell.
(base) [user1@sismom-1 ~]$ conda activate projeto1
(projeto1) [user1@sismom-1 ~]$
Nota
Quando o ambiente virtual é ativado o prompt muda e passa a incluir o
nome do ambiente (projeto1) [user1@sismom-1 ~]$.
1.2.2.2. Instalando pacotes
Para instalar os pacotes em Python utilize um dos comandos.
conda install <pacote>pip install <pacote>
1.2.2.3. Desativando o ambiente virtual
Para desativar o(s) ambiente(s) basta digitar o comando conda deactivate.
(projeto1) [user1@sismom-1 ~]$ conda deactivate
(base) [user1@sismom-1 ~]$ conda deactivate
[user1@sismom-1 ~]$