Подтвердить что ты не робот

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, а не общесистемный каталог?

4b9b3361

Ответ 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