pip install——help:

--user  Install to the Python user install directory for your platform. 
        Typically ~/.local/, or %APPDATA%\Python on Windows. 
        (See the Python documentation for site.USER_BASE for full details.)

现场文档。USER_BASE是一个有趣的*NIX主题的可怕虫洞,我不理解。

简单地说,用户的目的是什么?为什么要安装到~/。本地/重要吗?为什么不把一个可执行文件放在我的$PATH中?


当前回答

——用户安装在site.USER_SITE。

对于我的例子,它是/Users/…/Library/Python/2.7/bin。所以我把它添加到我的PATH (in ~/。bash_profile文件):

export PATH=$PATH:/Users/.../Library/Python/2.7/bin

其他回答

——用户安装在site.USER_SITE。

对于我的例子,它是/Users/…/Library/Python/2.7/bin。所以我把它添加到我的PATH (in ~/。bash_profile文件):

export PATH=$PATH:/Users/.../Library/Python/2.7/bin

如果你正在使用自己的conda env,不要使用——user。如果你正在使用conda env,使用——user在你的家里安装pkgs ~/.local/lib/。

在macOS上,使用——user标志的原因是确保我们不会破坏操作系统所依赖的库。对于许多macOS用户来说,一种保守的方法是避免使用需要sudo的命令安装或更新pip。因此,这包括安装到/usr/local/bin…

参考:安装python for Neovim (https://github.com/zchee/deoplete-jedi/wiki/Setting-up-Python-for-Neovim)

我不太清楚为什么在Mac上安装到/usr/local/bin是一种风险,因为系统只依赖于/Library/Frameworks/和/usr/bin中的python二进制文件。我怀疑这是因为如上所述,安装到/usr/local/bin需要sudo,这打开了一扇门,在系统库上犯了一个代价高昂的错误。因此,安装到~/。Local /bin是避免这种风险的可靠方法。

参考:在Mac上使用python (https://docs.python.org/2/using/mac.html)

最后,就将包安装到/usr/local/bin的好处而言,我想知道将目录的所有者从根改为用户是否有意义?这将避免不得不使用sudo,同时仍然防止进行依赖于系统的更改。*这是Unix系统过去(作为服务器)常用的安全默认值吗?或者至少,对于Mac用户来说,这是一个没有服务器的好方法?

*注意:Mac的系统完整性保护(SIP)功能似乎也保护用户不更改系统相关的库。

- E

pip默认将Python包安装到系统目录(例如/usr/local/lib/python3.4)。这需要root访问权限。

——user让PIP在你的主目录下安装包,这不需要任何特殊权限。

其他答案提到了网站。USER_SITE作为存放Python包的位置。如果您正在寻找二进制文件,则将它们放在{site.USER_BASE}/bin中。

如果你想把这个目录添加到你的shell的搜索路径,使用:

export PATH="${PATH}:$(python3 -c 'import site; print(site.USER_BASE)')/bin"