Contents

Como instalar pacotes Python no Raspberry Pi OS Bookworm

Key Takeaways

O Raspberry Pi OS Bookworm requer a implantação de módulos Python em uma plataforma virtual, como medida de precaução contra qualquer interferência adversa da implementação padrão do Python no host.

É possível utilizar o gestor de pacotes Apt para procurar e instalar módulos Python; no entanto, nos casos em que o pacote não está disponível ou é necessária uma versão actualizada, torna-se necessário utilizar o utilitário Pip num ambiente virtual.

Dentro de um ambiente virtual, quaisquer modificações ou adições ao Python não irão impactar a instalação do Python em todo o sistema.

Se encontrares dificuldades ao instalar pacotes Python utilizando o utilitário “pip” no Raspberry Pi OS Bookworm, existem medidas adicionais que devem ser executadas, que incluem o estabelecimento de um ambiente virtual Python. Veja abaixo os procedimentos necessários para essa tarefa.

O que mudou no Raspberry Pi OS Bookworm?

Ao atualizar para o mais recente dispositivo Raspberry Pi 5, é importante ter em mente que este pode não ser compatível com iterações anteriores do sistema operativo, nomeadamente o Raspberry Pi OS. Como tal, deve ser efectuada uma nova instalação da recém-lançada edição “Bookworm” para garantir a funcionalidade e compatibilidade adequadas.

Em iterações passadas do Raspberry Pi OS baseado em Debian, tais como o Buster e os seus lançamentos anteriores, os utilizadores tinham a capacidade de instalar globalmente pacotes Python através da utilização do gestor de pacotes pip. No entanto, esta funcionalidade foi removida da iteração mais recente do Raspberry Pi OS conhecida como Bookworm.

Como a documentação do Raspberry Pi explica, o problema era que o uso de uma ferramenta específica do Python, como o pip, poderia causar conflitos com o gerenciador de pacotes apt OS.

Assim, começando com o Bookworm, é obrigatório instalar pacotes dentro de um ambiente virtual Python higienizado através da utilização do pip, de modo a prevenir qualquer potencial intromissão com a versão do Python do sistema.

Ao tentar executar o comando “pip install [nome do pacote]” fora de um ambiente virtual, é gerada uma mensagem de erro que começa da seguinte forma:

 error: externally-managed-environment

× This environment is externally managed
╰─> To install Python packages system-wide, try apt install
  python3-xyz, where xyz is the package you are trying to
  install.

Como procurar pacotes Python com o Apt

O passo inicial envolve verificar se o pacote Python requerido pode ser instalado através do gestor de pacotes APT (Advanced Package Tool) de todo o sistema. Para executar essa tarefa, pode-se utilizar o comando “apt search” para navegar pelos repositórios oficiais e localizar pacotes relevantes.A título de exemplo, considere a execução do seguinte comando:

 apt search numpy 

Tenha em atenção que é necessário instalar um pacote específico denominado “python3-numpy”, que é compatível com a versão 3 do Python. Para o fazer, utilize o gestor de pacotes APT juntamente com o privilégio de administrador concedido através de “sudo”.

 sudo apt install python3-numpy 

Nos casos em que o pacote Python desejado não pode ser obtido através da utilização do gestor de pacotes APT, ou se for necessária uma versão actualizada, é necessário empregar a ferramenta pip especializada dentro de um ambiente virtual Python para fins de instalação.

Como criar um ambiente virtual Python

Para instalar um pacote Python utilizando o utilitário pip dentro do sistema operacional Raspberry Pi OS Bookworm, é necessário inicialmente estabelecer um ambiente virtual Python empregando o comando venv. Consequentemente, denominámos a nossa instância particular como “muo-project”, embora se possa optar por uma designação alternativa à sua escolha.

 python -m venv muo-project 

O tempo necessário para a conclusão desta tarefa pode variar consoante o modelo específico de Raspberry Pi utilizado. Posteriormente, é necessário navegar para a pasta do ambiente virtual recém-estabelecido, que aloja uma instalação completa do Python, e iniciar a sua ativação.

 cd muo
source bin/activate 

O ambiente virtual para Python foi estabelecido e inicializado com sucesso, como evidenciado pela alteração na linha de comandos do sistema que agora mostra “muo-project”, indicando que a instância específica do ambiente de Python está a ser utilizada em vez da instalação padrão do sistema. Consequentemente, quaisquer modificações feitas no ambiente virtual ou pacotes nele instalados não terão impacto na instalação principal do Python no sistema.

/pt/images/create-python-virtual-environment.jpg

Por favor, note que no caso de um reinício do sistema, tal como uma reinicialização do Raspberry Pi, o ambiente de tempo de execução do Python deve ser reativado para utilização contínua.

Para estabelecer um ambiente virtual Python que espelha todos os pacotes Python atualmente instalados no seu sistema operativo, basta incluir a opção --system-site-packages no comando relevante. Por exemplo, pode-se designar python -m venv --system-site-packages muo-project .

Instalar Pacotes Python com o Pip

De modo a utilizar as capacidades de um ambiente virtual Python, pode-se empregar o comando pip para instalar quaisquer pacotes necessários para o seu projeto.Como ilustração, considere a instalação da ferramenta de teste de stress do sistema Stressberry, executando o seguinte comando:

 pip install stressberry 

O módulo será instalado no seu ambiente virtual Python designado juntamente com as suas dependências necessárias. É importante notar que a disponibilidade do módulo é limitada apenas ao ambiente virtual acima mencionado e não se estende para além dele.

/pt/images/pip-install-package.jpg

Sem mais conflitos de pacotes Python

Utilizar a ferramenta pip para instalar pacotes Python numa Raspberry Pi a funcionar com o OS Bookworm requer procedimentos adicionais em comparação com os sistemas tradicionais; no entanto, esta abordagem oferece o benefício de confinar estes pacotes a ambientes virtuais isolados, prevenindo assim potenciais interrupções ou avarias de todo o sistema.