Установка пакетов pip в папку $ HOME - PullRequest
319 голосов
/ 22 августа 2011

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

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

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

Ответы [ 3 ]

448 голосов
/ 22 августа 2011

Хотя вы можете использовать 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 подходит для установок user в стиле PEP370. В Python 2.7 и 3.2 расположение в Mac OS X было изменено с $HOME/.local на $HOME/Library/Python. Это может измениться в будущем выпуске. Но на данный момент, на 2.7 (и 3.2, если * Python 3 поддерживается hg), вышеуказанные местоположения будут $HOME/Library/Python/x.y/bin/hg и $HOME/Library/Python/x.y/lib/python/site-packages.

20 голосов
/ 22 августа 2011

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

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

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

15 голосов
/ 17 апреля 2018

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

pip install -t path_to_your_home package-name

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

pip install -t /home/foivos/ mxnet
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...