Python no cPanel: ambientes virtuais e pip

No cPanel, o Python corre pelo «Setup Python App», que oferece o Python 2.7 e as versões 3.3 a 3.13. Cada aplicação tem o seu próprio ambiente virtual, criado pela ferramenta, e é nele que o pip deve instalar as bibliotecas. A regra de ouro: use o ambiente da aplicação, não crie outro, e instale sempre com o pip desse ambiente. Para uma aplicação nova, escolha uma versão 3.x actual; o Python 2.7 já não tem manutenção.

Criar a aplicação e instalar as bibliotecas

1 Abra «Setup Python App» no cPanel (secção Software) e escolha «Create Application».
2 Preencha o essencial: a versão do Python, a raiz da aplicação (uma pasta dentro da sua conta, fora da pasta pública do site), o endereço da aplicação, o ficheiro de arranque (passenger_wsgi.py por omissão) e o ponto de entrada (application por omissão). Guarde.
3 Escreva um requirements.txt na raiz da aplicação com uma biblioteca por linha, por exemplo flask. Num computador seu, gera-se com pip freeze > requirements.txt.
4 Instale. No ecrã da aplicação, na parte dos ficheiros de configuração, indique o requirements.txt e use o botão «Run Pip Install».
5 Reinicie a aplicação. O Passenger só carrega as bibliotecas novas depois de um reinício.

Usar o pip no terminal

Se a conta tem terminal (depende da conta; veja o Terminal do cPanel), o ecrã da aplicação mostra no topo o comando para entrar no ambiente virtual: um source de um ficheiro activate dentro de uma pasta virtualenv. Copie-o tal como está. Depois de entrar:python --version
pip --version
pip install -r requirements.txt
pip list
O pip --version deve mostrar um caminho dentro do ambiente da aplicação. Se mostrar outro, não está dentro.

Erro O que quer dizer O que fazer
ModuleNotFoundError: No module named ... A biblioteca não está no ambiente que a aplicação usa. Instale com o pip do ambiente da aplicação (ou «Run Pip Install») e reinicie.
Permission denied ao instalar Está a tentar instalar fora do ambiente, no sistema. Entre no ambiente da aplicação primeiro. Nunca use sudo numa conta partilhada.
Erro a compilar (gcc, «Python.h», «could not build wheel») A biblioteca precisa de compilar e faltam ferramentas ou cabeçalhos. Procure uma alternativa só em Python (para ligar ao MySQL, por exemplo, o PyMySQL em vez do mysqlclient) ou uma versão com pacote já compilado.
A aplicação usa uma versão antiga da biblioteca Instalou-se outra versão por cima, ou o requirements.txt não fixa versões. Fixe-as: flask==X.Y.Z com a versão que ensaiou.
A versão do Python mudou e nada funciona O ambiente é novo e está vazio. Volte a correr «Run Pip Install» na versão nova.
Mudar a versão do Python cria um ambiente novo, vazio. As bibliotecas da versão antiga não passam para a nova: reinstale tudo com o requirements.txt. E nunca apague a pasta do ambiente à mão; use a ferramenta, que sabe o que ligou ao Passenger.

E num VPS?

Num VPS com Ubuntu 22.04 LTS, o ambiente virtual faz-se à mão, por projecto:sudo apt install python3-venv python3-pip
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt
deactivate
Nas versões mais recentes do Ubuntu e do Debian, o pip recusa instalações fora de um ambiente virtual (a mensagem é «externally-managed-environment»): é para isso que o ambiente serve. Em serviços (systemd, PM2, Docker), aponte sempre para o Python dentro do .venv.

Fixe as versões com pip freeze > requirements.txt no ambiente que funciona, e guarde o ficheiro com o código. Para pôr uma aplicação web a correr, veja Flask ou FastAPI, e para o Django, pôr uma aplicação Django a funcionar. A ligação à base de dados está em ligar à base de dados a partir de Python e Node.js.

O botão de instalação dá um erro que não percebe, ou a versão de Python que precisa não aparece? Diga-nos o domínio e a mensagem.

Abrir um pedido de suporte

VEJA TAMBÉM

Executar uma aplicação Flask ou FastAPI

Pôr uma aplicação Django a funcionar

Que tecnologias correm aqui: PHP, Node, Python, Perl, jogos e os limites

PRODUTO RECOMENDADO

Alojamento de sites com cPanel

Domínio e SSL incluídos, cópias diárias e o painel que já conhece. desde 321,75 MT/mês (plano de 3 anos, com cupão)

Ver planos
  • 0 Utilizadores acharam útil
Esta resposta foi útil?