Sem ambientes virtuais
pip <command> --user
altera o escopo do comando pip atual para trabalhar no local de instalação do pacote python local da conta de usuário atual, em vez do local de instalação do pacote em todo o sistema, que é o padrão.
- Consulte Instalações do usuário no Guia do usuário do PIP.
Isso realmente importa apenas em uma máquina multiusuário. Qualquer coisa instalada no local do sistema ficará visível para todos os usuários; portanto, a instalação no local do usuário manterá a instalação do pacote separada dos outros usuários (eles não o verão e precisariam instalá-lo separadamente para usá-lo). Como pode haver conflitos de versão, a instalação de um pacote com dependências necessárias para outros pacotes pode causar problemas; portanto, é melhor não enviar todos os pacotes que um determinado usuário usa para o local de instalação do sistema.
- Se for uma máquina de usuário único, há pouca ou nenhuma diferença na instalação no
--user
local. Ele será instalado em uma pasta diferente, que pode ou não precisar ser adicionada ao caminho, dependendo do pacote e de como é usado (muitos pacotes instalam ferramentas de linha de comando que devem estar no caminho para executar a partir de um shell) .
- Se for uma máquina multiusuário,
--user
é preferível usar root / sudo ou exigir a instalação do administrador e afetar o ambiente Python de cada usuário, exceto nos casos de pacotes gerais que o administrador deseja disponibilizar a todos os usuários por padrão.
- Nota: Por comentários, na maioria das instalações Unix / Linux, foi apontado que as instalações do sistema devem usar o gerenciador de pacotes geral, como
apt
, em vez de pip
.
Com ambientes virtuais
A --user
opção em um ambiente venv / virtualenv ativo será instalada no local python do usuário local (o mesmo que sem um ambiente virtual).
Os pacotes são instalados no ambiente virtual por padrão, mas se você --user
o forçar a instalar fora dos ambientes virtuais, no diretório de scripts python dos usuários (no Windows, atualmente é c:\users\<username>\appdata\roaming\python\python37\scripts
para mim com o Python 3.7).
No entanto, você não poderá acessar uma instalação do sistema ou do usuário de dentro do ambiente virtual (mesmo que você tenha usado --user
em um ambiente virtual).
Se você instalar um ambiente virtual com o --system-site-packages
argumento, terá acesso à pasta de scripts do sistema para python. Eu acredito que isso incluiu a pasta de script python do usuário também, mas não tenho certeza. No entanto, pode haver consequências indesejadas para isso e não é a maneira pretendida de usar ambientes virtuais.
Localização do sistema Python e das pastas de instalação do usuário local
Você pode encontrar o local da pasta de instalação do usuário para python com python -m site --user-base
. Estou encontrando informações conflitantes nas perguntas e respostas, na documentação e, na verdade, usando este comando no meu PC para saber quais são os padrões, mas eles estão sob o diretório inicial do usuário ( ~
atalho em * nix e, c:\users\<username>
normalmente, no Windows).
Outros detalhes
A --user
opção não é válida para todos os comandos. Por exemplo pip uninstall
, encontrará e desinstalará os pacotes onde quer que estejam instalados (na pasta do usuário, na pasta do ambiente virtual etc.) e a --user
opção não é válida.
Os itens instalados pip install --user
serão instalados em um local local que será visto apenas pela conta de usuário atual e não exigirá acesso root (no * nix) ou acesso de administrador (no Windows).
A --user
opção modifica todos os pip
comandos que o aceitam para ver / operar na pasta de instalação do usuário, portanto, se você usá- pip list --user
lo, apenas mostrará os pacotes instalados pip install --user
.
import site; print site.USER_SITE
imprimir o local da instalação. Para mim eu tenho/${HOME}/.local/lib/python${PY_MAJOR}.${PY_MINOR}/site-packages
.