Без віртуальних середовищ
pip <command> --user змінює область дії поточної команди pip для роботи над локальним місцем встановлення пакета python, а не місцем встановлення пакета, що є типовим.
- Див. Установки користувачів у Посібнику користувача PIP.
Це дійсно має значення лише на багатокористувацькій машині. Все, що встановлено в системному розташуванні, буде видимим для всіх користувачів, тому при встановленні до місця розташування користувача ця установка пакету буде відокремлена від інших користувачів (вони не побачать його, і їм доведеться встановлювати його окремо, щоб користуватися ним). Оскільки можуть виникати конфлікти версій, установка пакету із залежностями, необхідними для інших пакетів, може спричинити проблеми, тому краще не натискати всі пакунки, якими користувач користується, до місця установки системи.
- Якщо це машина з однокористувальним користувачем, встановлення до
--userмісця розташування мало або взагалі не має різниці . Вона буде встановлена в іншу папку, яку можна або не потрібно буде додавати в шлях, залежно від пакета та способу його використання (багато пакетів встановлюють інструменти командного рядка, які повинні бути на шляху запуску з оболонки) .
- Якщо це багатокористувацька машина,
--userвважається за краще використовувати root / sudo або вимагати встановлення адміністратора та впливати на середовище Python кожного користувача, за винятком випадків загальних пакетів, які адміністратор хоче зробити доступними для всіх користувачів за замовчуванням.
- Примітка. За коментарями у більшості встановлень Unix / Linux було зазначено, що для встановлення системи слід використовувати загальний менеджер пакунків, наприклад
apt, а не pip.
З віртуальними середовищами
--userВаріант в активному середовищі venv / virtualenv буде встановити на локальне розташування користувача Python (ж , як і без віртуального середовища).
Пакети встановлені у віртуальному середовищі за замовчуванням, але якщо ви --userйого використовуєте, це змусить його встановлюватись поза віртуальними середовищами, у каталозі скриптів користувачів python (у Windows, це c:\users\<username>\appdata\roaming\python\python37\scriptsдля мене зараз для Python 3.7).
Однак ви не зможете отримати доступ до інсталяції системи або користувача з віртуального середовища (навіть якщо ви використовувались --userу віртуальному середовищі).
Якщо ви встановите віртуальне середовище з --system-site-packagesаргументом, ви отримаєте доступ до папки системного сценарію для python. Я вважаю, що це включало також папку скриптів користувача python, але я не впевнений. Однак для цього можуть виникнути ненавмисні наслідки, і це не призначений спосіб використання віртуальних середовищ.
Розташування системи Python та папок локальних користувачів
Ви можете знайти місцезнаходження папки для встановлення користувача для python за допомогою python -m site --user-base. Я знаходжу суперечливу інформацію в питаннях і відповідях, документації та фактично використовую цю команду на моєму ПК щодо того, якими є типові параметри, але вони знаходяться під домашнім каталогом користувача ( ~ярлик у * nix і, c:\users\<username>як правило, для Windows).
Інші подробиці
--userВаріант не є допустимим для кожної команди. Наприклад, pip uninstallви знайдете та видаліть пакунки, де б вони не були встановлені (у папці користувача, папці віртуального середовища тощо), і --userпараметр недійсний.
Речі, встановлені з, pip install --userбудуть встановлені в локальному розташуванні, яке буде бачити лише поточний обліковий запис користувача, і не потребуватиме кореневого доступу (на * nix) або доступу адміністратора (у Windows).
Цей --userпараметр змінює всі pip команди, які приймають його, щоб побачити / працювати в папці встановлення користувача, тому, якщо ви використовуєте, pip list --userвін показуватиме лише пакунки, встановлені з pip install --user.
import site; print site.USER_SITEроздрукувати місце встановлення. Для мене я отримав/${HOME}/.local/lib/python${PY_MAJOR}.${PY_MINOR}/site-packages.