python - Как установить пакеты в моей папке $ HOME с помощью пипа?


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

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

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


Answers



Хотя вы можете использовать virtualenv , вам не нужно. Трюк --user аргумент --user --user --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, если hg были поддержаны на Python 3), указанные выше местоположения будут $HOME/Library/Python/xy/bin/hg и $HOME/Library/Python/xy/lib/python/site-packages .




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

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

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