Desde que fiz uma pergunta sobre Pip vs Package Manager para lidar com pacotes Python , aprendi muito, especialmente sobre ambientes virtuais com o venv
módulo. Hoje em dia instalo quase exclusivamente pacotes com ambientes virtuais pip
internos . Eu quase raramente instalo um pacote python em todo o sistema.
Uma coisa que eu sempre morro de medo, porém, é a possibilidade de eu executar um
pip install
comando sem perceber que não tenho um venv
ativado.
Você poderia usar um alias de shell para assumir o controle
pip
quando estiver fora do venv.alias 'pip=cowsay "You are not in a virtual environment"'
E dentro do arquivo de inicialização virtualenv (por exemplo, aquele que é originado quando você entra no venv):
unalias 'pip'
Há uma opção global
require-virtualenv
para exigir um ambiente virtual ao operarpip
.Várias maneiras de habilitar isso ( escolha uma ):
Como opção de configuração (que tem minha preferência) assim, por exemplo
~/.config/pip/pip.conf
ou/etc/pip.conf
:Você também pode executar este comando para modificar/criar o arquivo de configuração para você:
Use a variável de ambiente
PIP_REQUIRE_VIRTUALENV
e defina-a como valuetrue
.Diretamente usando a
--require-virtualenv
opção de linha de comando.Se você tentar instalar pacotes fora de um virtualenv, verá este erro:
Se você precisar substituir essa opção temporariamente para atualizar o pip ou instalar o virtualenv em versões mais antigas do Python, poderá preceder o comando com
PIP_REQUIRE_VIRTUALENV=false
.NB: Esta opção parece estar faltando na
--help
saída e nos documentos como um todo nas versões pip mais antigas (< 22.0), mas está funcionando bem para mim. Testado com 20.3.4 como versão mais recente no Python 2.7.x.