Установка пакетов 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