有可能吗?安装pip
时,在我的$HOME
文件夹中安装python包。 (例如,我想使用mercurial
安装pip
,但在$HOME
内而不是/usr/local
内安装
我正在使用mac机器,只是想到了这种可能性,而不是“污染”我的/usr/local
,我会改用$HOME
。
PEP370就是这个。只是创建一个˜/.local
并执行pip install package
足以使这些包只安装在我的$ HOME文件夹中?
答案 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