Установка пакетов pip в папку $HOME

Является ли это возможным? При установке pip установить пакеты Python внутри моего $HOME папка. (например, я хочу установить mercurial, с помощью pip, но внутри $HOME вместо /usr/local)

Я с машиной Mac и просто подумал об этой возможности, вместо того, чтобы "загрязнять" мой /usr/local Я бы использовал мой $HOME вместо.

PEP370 именно об этом. Это просто создание ˜/.local и сделать pip install package достаточно, чтобы эти пакеты были установлены только в моей папке $HOME?

4 ответа

Решение

Хотя вы можете использовать virtualenvВам не нужно. Хитрость прохождения PEP370 --user аргумент setup.py скрипт. С последней версией pipОдин из способов сделать это:

pip install --user mercurial

Это должно привести к hg скрипт устанавливается в $HOME/.local/bin/hg а остальная часть пакета hg в $HOME/.local/lib/pythonx.y/site-packages/,

Обратите внимание, что вышесказанное верно для Python 2.6. Среди разработчиков ядра Python возникли разногласия по поводу того, какое расположение каталогов в Mac OS X подходит для PEP370-стиля user установок. В Python 2.7 и 3.2 расположение в Mac OS X было изменено с $HOME/.local в $HOME/Library/Python, Это может измениться в будущем выпуске. Но пока на 2,7 (и 3,2, если hg были поддержаны на Python 3), вышеуказанные места будут $HOME/Library/Python/x.y/bin/hg а также $HOME/Library/Python/x.y/lib/python/site-packages,

Вы можете указать -t вариант (--target), чтобы указать каталог назначения. Увидеть pip install --help для подробной информации. Это команда, которая вам нужна:

pip install -t path_to_your_home package-name

например для установки скажем mxnet, по моему $HOME каталог, я печатаю:

pip install -t /home/foivos/ mxnet

Я бы использовал virtualenv в вашем домашнем каталоге.

$ sudo easy_install -U virtualenv
$ cd ~
$ virtualenv .
$ bin/pip ...

Вы также можете изменить ~/.(login|profile|bash_profile)в зависимости от того, подходит ли ваша оболочка для добавления ~/bin в PATH, а затем pip|python|easy_install будет использоваться по умолчанию.

Краткий ответ на ваши два вопроса, взятые из других ответов

Один

Да

можно установить пакеты pip в $HOME вместо /usr/local/lib/, но

Два

      mkdir ˜/.local # then
pip install package 

недостаточно.

Тебе нужно

      pip install package --user

и пакеты устанавливаются на

      /home/user/.local/lib/python3.x/site-packages

Исключение, когда вам не нужно --user

  • если вы не являетесь пользователем root
  • На Debianвместе с Wsl- Подсистема Windows Linux без уведомления
  • Уведомление об Ubuntu 20.04 default to user installation because normal site-packages not writeable- конфигурация по умолчанию /usr/libнедоступна для записи для других пользователей, кроме root
Другие вопросы по тегам