Без віртуальних середовищ
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
.