将pip包安装到$ HOME文件夹

时间:2011-08-22 04:10:25

标签: python pip

有可能吗?安装pip时,在我的$HOME文件夹中安装python包。 (例如,我想使用mercurial安装pip,但在$HOME内而不是/usr/local内安装

我正在使用mac机器,只是想到了这种可能性,而不是“污染”我的/usr/local,我会改用$HOME

PEP370就是这个。只是创建一个˜/.local并执行pip install package足以使这些包只安装在我的$ HOME文件夹中?

3 个答案:

答案 0 :(得分:444)

虽然您可以使用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核心开发人员中有bit of controversy关于在Mac OS X上适用于PEP370样式user安装的适当目录位置。在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

答案 1 :(得分:20)

我会在您的HOME目录中使用virtualenv。

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

然后您也可以更改~/.(login|profile|bash_profile),以适合您的shell添加〜/ bin到您的PATH,然后pip|python|easy_install将是默认使用的那个。

答案 2 :(得分:15)

您可以指定-t选项(--target)以指定目标目录。有关详细信息,请参阅pip install --help。这是您需要的命令:

pip install -t path_to_your_home package-name

例如,在我的$HOME目录中安装说mxnet,我输入:

pip install -t /home/foivos/ mxnet