Pip не будет устанавливать пакеты Python локально с помощью --user
Я пытаюсь установить пакеты локально с помощью pip. Он работал с --user
, но теперь, когда я его пытаюсь, он находит версию пакета в /usr/local/lib/
, а затем не устанавливает его локально. Обычно он установил вещи в ~/.local
, но теперь он просто проверяет общесистемный каталог для пакета, и если он там, он не устанавливает его (это не то, что я хочу), и если он не существует, он пытается установить это в /usr/local/lib
, на котором у меня нет прав на запись. Например:
$ pip install --user rpy2
Requirement already satisfied (use --upgrade to upgrade): rpy2 in /usr/local/lib/python2.7/dist-packages/
Как я могу сделать pip install --user
всегда идти в ~/.local
, а не общесистемный каталог?
Ответы
Ответ 1
Цитирование Маркус Смит (сторонник пипса):
Если вы считаете, что глобальный сайт устарел, и хотите, чтобы пользовательский сайт, а затем используйте:
pip install --upgrade --user SomePackage
Если глобальный сайт обновлен, и вы действительно просто хотите того же вещь дублируется в --user
, затем используйте:
pip install --ignore-installed --user SomePackage
(который корректно работает теперь после слияния # 1352, который должен быть выпущен в версии 1.5)
Как я могу сделать pip install --user
всегда перейти к ~/.local
, а не к общесистемной директории?
Используйте аргументы --upgrade
и --ignore-installed
.
Ответ 2
Согласно документации на pip, этот синтаксис верен, но требует Python 2.6.
Пользователь устанавливает
С Python 2.6 появилась "пользовательская схема" для установки, что означает что все дистрибутивы Python поддерживают альтернативное место установки что характерно для пользователя. Расположение по умолчанию для каждой ОС объясняется в документации на python для переменной site.USER_BASE. Этот способ установки можно включить, указав -user вариант для установки pip.
Кроме того, пользовательскую схему можно настроить, установив PYTHONUSERBASE, которая обновляет значение site.USER_BASE.
Чтобы установить "SomePackage" в среду с site.USER_BASE настроенный на '/myappenv, выполните следующие действия:
export PYTHONUSERBASE=/myappenv
pip install --user SomePackage
Поэтому следующая запись должна работать для вас:
export PYTHONUSERBASE=~/.local
pip install --user rpy2