2
respostas

Duvida ao rodar o comando

Ola,

Ao rodar o comando pip install python-dotenv ele apresenta o erro abaixo:

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.

If you wish to install a non-Debian-packaged Python package,
create a virtual environment using python3 -m venv path/to/venv.
Then use path/to/venv/bin/python and path/to/venv/bin/pip. Make
sure you have python3-full installed.

If you wish to install a non-Debian packaged Python application,
it may be easiest to use pipx install xyz, which will manage a
virtual environment for you. Make sure you have pipx installed.

See /usr/share/doc/python3.12/README.venv for more information.

note: If you believe this is a mistake, please contact your Python installation or OS distribution provider. You can override this, at the risk of breaking your Python installation or OS, by passing --break-system-packages.
hint: See PEP 668 for the detailed specification.

Eu preciso entrar no virtual env para rodar esse comando e depois rodar a atualizacao do requirements.txt em cada diretorio do projeto?

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
2 respostas

Ola amigo.
Esse erro está acontecendo porque você está tentando instalar um pacote no ambiente global do sistema (system-wide), e o Python da sua distribuição Linux (provavelmente Debian/Ubuntu) está configurado para impedir isso justamente para não quebrar o Python do sistema.
O correto é instalar todas as dependencias em um ambiente virtual e depois atualizar o requirements.txt.
E, se quiser atualizar todos os pacotes do seu requirements.txt:

pip install -r requirements.txt --upgrade

E sim você precisa repetir isso em cada diretório de projeto que tiver seu próprio requirements.txt.
Cada projeto deve ter seu próprio ambiente virtual independente.
Voce tambem pode criar um script para automatizar este processo.
Qualquer duvida comente ai.
Bons estudos.

Bom dia! Obrigado pela informação.