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
--userlocal. 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 --useropçã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ê --usero 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\scriptspara 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 --userem um ambiente virtual).
Se você instalar um ambiente virtual com o --system-site-packagesargumento, 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 --useropçã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 --useropção não é válida.
Os itens instalados pip install --userserã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 --useropçã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 --userlo, apenas mostrará os pacotes instalados pip install --user.
import site; print site.USER_SITEimprimir o local da instalação. Para mim eu tenho/${HOME}/.local/lib/python${PY_MAJOR}.${PY_MINOR}/site-packages.