2013-03-14 2 views
12

Я пытаюсь установить пакеты локально с помощью pip. Он работал с --user, но теперь, когда я его пробую, он находит версию пакета в /usr/local/lib/, а затем не устанавливает его локально. Обычно он устанавливает вещи в ~/.local, но теперь он просто проверяет системный каталог для пакета, и если он есть, он не устанавливает его (что не то, что я хочу), и если его нет, он пытается установить его в /usr/local/lib, на который у меня нет прав на запись. Например:pip не будет устанавливать пакеты Python локально с --user

$ pip install --user rpy2 
Requirement already satisfied (use --upgrade to upgrade): rpy2 in /usr/local/lib/python2.7/dist-packages/ 

Как я могу сделать pip install --user всегда идти к ~/.local и не общесистемного каталога?

+0

хорошо сказано, что это «Требование» удовлетворено, и оно говорит вам использовать опцию --upgrade, вы пробовали ее использовать? – PurityLake

+0

@PurityLake: да, это ничего не меняет – user248237dfsf

+2

«Программные средства, обычно используемые программистами», например, 'pip', посвящены теме. Проголосовал за повторное открытие. –

ответ

2

Согласно документации на пипс, этот синтаксис верен, но требует Python 2.6.

Пользователь устанавливает

В Python 2.6 появился «схема пользователя» для установки, а это значит, что все дистрибутивы Python поддерживает альтернативное место установки , специфичный для пользователя. Расположение по умолчанию для каждой ОС - , описанное в документации на python для переменной site.USER_BASE. Этот способ установки может быть включен, указав опцию -user для установки на диск.

Кроме того, «пользовательская схема» может быть настроена путем установки переменной среды PYTHONUSERBASE, которая обновляет значение site.USER_BASE.

Чтобы установить «SomePackage» в среду с site.USER_BASE настроенной на '/ myappenv', сделайте следующее:

export PYTHONUSERBASE=/myappenv 
pip install --user SomePackage 



Так что следующая запись должна работать для вас:

export PYTHONUSERBASE=~/.local 
pip install --user rpy2 
+0

Документация по пунктам находится по адресу: [pip cookbook] (http://www.pip-installer.org/en/latest/cookbook.html) – JamCon

+1

MagicalPony: Не знал об этом, спасибо. Но настройка PYTHONUSERBASE не работает - она ​​по-прежнему ищет в '/ usr/local/lib /' – user248237dfsf

+0

'pip install --user --force-reinstall --upgrade jinja2' можно установить в' ~/.local/'dir. – RNA

12

Citing Маркус Смит (сопровождающий пип):

Если вы считаете, что глобальный сайт устаревает, и хотите последним в веб-сайт пользователя, а затем использовать:
pip install --upgrade --user SomePackage

Если глобальный сайт в актуальном состоянии, и вы действительно просто хотите то же самое, что дублируется в --user, а затем использовать:
pip install --ignore-installed --user SomePackage (который работает правильно теперь, после слияния # 1352, который должен быть выпущен в v1.5)

Как я могу сделать pip install --user всегда go to ~/.local и не является общесистемным каталогом?

Используйте как аргументы --upgrade, так и --ignore-installed.

+0

Спасибо, что упомянул об ошибках в pip. Единственное, что мне не хватает, это комбинировать --prefix с --user, см. Http://stackoverflow.com/questions/24420125/python-change-user-site-directory-or-install-setup-py-prefix -с-пользователь – rudimeier

 Смежные вопросы

  • Нет связанных вопросов^_^