关于python:将pip包安装到$ HOME文件夹

Installing pip packages to $HOME folder

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

我带着一台Mac电脑,只是考虑了一下这种可能性,我不想"污染"我的/usr/local,而是使用我的$HOME

Pep370就是这样。只是创建一个?/.local和一个pip install package是否足以使这些包只安装在我的$home文件夹中?


虽然您可以使用virtualenv,但不需要。诀窍是把pep370 --user的论点传给setup.py脚本。对于最新版本的pip,一种方法是:

1
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,如果在python 3上支持hg),上述位置将是$HOME/Library/Python/x.y/bin/hg$HOME/Library/Python/x.y/lib/python/site-packages


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

1
2
3
4
$ sudo easy_install -U virtualenv
$ cd ~
$ virtualenv .
$ bin/pip ...

然后,您还可以更改~/.(login|profile|bash_profile),以shell将~/bin添加到您的路径中的正确者为准,然后默认使用pip|python|easy_install


您可以指定-t选项(--target来指定目标目录。详细信息见pip install --help。这是您需要的命令:

1
pip install -t path_to_your_home package-name

例如,要安装say mxnet,在我的$HOME目录中,我键入:

1
pip install -t /home/foivos/ mxnet