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了吗?您可以在一个隔离的环境中安装带有PIP的包。
- 我考虑过了,但是我想使用现有的python(2.6.1)安装一些python应用程序,但不是在/usr/local/安装,而是在$home文件夹安装并将其添加到$path。我想知道这是否可行,以及这种方法的任何注意事项。
- +1用于推广PEP370。这是一个简单但有用的选择,应该让更多人知道。
- 我也遇到过类似的问题(可能是由于两个不同的pyhton的pip配置错误和易于安装造成的)。作为最后的手段,我尝试使用普通的$ python setup.py --user install。它奏效了。软件包现在安装在home subdir上,所有工作都按预期进行。必须与我的服务器管理员联系。
- 如果您需要安装PIP,只需执行类似于wget https://bootstrap.pypa.io/get-pip.py的操作,然后执行python get-pip.py的操作,就可以了。如果您在安装的PIP太旧的机器上(对我来说就是这样),可能会很有用。有关详细信息,请参阅pip.readthedocs.org/en/latest/installing.html。
- @Janvlcinsky对我来说,和python 3.5没用。原来是:江户十一〔三〕。
虽然您可以使用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。
- 好点。不幸的是,在python2.7中有一个bug,导致在OS X框架构建中忽略pythonUserBase。它将针对python 2.7.3进行修复。
- 这看起来很不适应。默认情况下,easy_install安装在mac os x中,因此我只能在$HOME文件夹之外安装pip。
- 我的雪豹附带的easy_install在/Library/Python/2.6/site-packages/pip-1.0.2-py2.6.egg上安装了pip。做which pip显示/usr/local/bin/pip。安装带有--user参数和pip的mercurial,which hg现在显示$HOME/.local/bin/hg!(我需要在$PATH中添加$HOME/.local/bin,以使其工作。)
- 我试着把Python酶换到另一个地方。没有成功。这是如何在Windows上完成的?
- 请注意,如果您这样做,然后尝试使用Conda环境,则安装在.local中的文件将始终首先受到攻击,这可能导致很难跟踪导入错误。
- 请注意,在OSX上,用户站点目录的bin文件夹不在路径上。这意味着由用户站点目录中的包安装的脚本将不可执行,除非您使用export PATH=$PATH:~/Library/Python/X.Y/bin/。
- 对于任何想知道的人,在Windows上,这会将脚本安装到%appdata%pythonpython36scripts
- 当您要在本地安装的包是virtualenv时也很有用。
- $ echo $(python -c"import site; print(site.USER_BASE)")/bin /Users/systemdisc/Library/Python/2.7/bin
- 我做了一切,但仍然没有工作。
我会在您的主目录中使用virtualenv。
1 2 3 4
| $ sudo easy_install -U virtualenv
$ cd ~
$ virtualenv .
$ bin/pip ... |
然后,您还可以更改~/.(login|profile|bash_profile),以shell将~/bin添加到您的路径中的正确者为准,然后默认使用pip|python|easy_install。
- 实际上,这样做的方法是virtualenv venv,source venv/bin/activate。您可能不一定希望总是使用virtualenv,使用此方法时,提示前面会加上(venv)。
- @Nyuszika7h我们知道如何使用virtualenv。但这确实回答了这个问题,而且是一个非常完美的解决方案。
- @"我们"是谁?我建议你阅读en.wikipedia.org/wiki/weasel_word。
- 不管怎样,我不同意,这不是一个"干净的解决方案"。这是一个毫无意义的黑客。
您可以指定-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 |