没有虚拟环境
PIP <command>——user修改当前PIP命令的作用域,使其作用于当前用户帐户的本地python包安装位置,而不是默认的系统级包安装位置。
参见《PIP用户指南》中的“用户安装”。
This only really matters on a multi-user machine. Anything installed to the system location will be visible to all users, so installing to the user location will keep that package installation separate from other users (they will not see it, and would have to install it themselves separately to use it). Because there can be version conflicts, installing a package with dependencies needed by other packages can cause problems, so it's best not to push all packages a given user uses to the system install location.
If it is a single-user machine, there is little or no difference to installing to the --user location. It will be installed to a different folder, that may or may not need to be added to the path, depending on the package and how it's used (many packages install command-line tools that must be on the path to run from a shell).
If it is a multi-user machine, --user is preferred to using root/sudo or requiring administrator installation and affecting the Python environment of every user, except in cases of general packages that the administrator wants to make available to all users by default.
Note: Per comments, on most Unix/Linux installs it has been pointed out that system installs should use the general package manager, such as apt, rather than pip.
使用虚拟环境
有关在虚拟环境中安装包的更多信息,请参阅Python package文档。
在Python venv文档中阅读如何创建和使用虚拟环境,以及venv命令。
活动venv/virtualenv环境中的——user选项将安装到本地用户python位置(与没有虚拟环境相同)。
默认情况下,包被安装到虚拟环境中,但如果你使用——user,它将强制它安装在虚拟环境之外的users python脚本目录中(在Windows中,这目前是c:\users\<username>\appdata\roaming\python\python37\scripts对于我来说,使用python 3.7)。
但是,您将无法从虚拟环境中访问系统或用户安装(即使您在虚拟环境中使用——user)。
如果使用——system-site-packages参数安装虚拟环境,则可以访问python的系统脚本文件夹。我相信这也包括用户python脚本文件夹,但我不确定。但是,这样做可能会产生意想不到的后果,并且这不是使用虚拟环境的理想方式。
Python系统和本地用户安装文件夹的位置
你可以用python -m site——user-base找到python用户安装文件夹的位置。我在问答,文档和实际上在我的PC上使用这个命令的默认值中发现了冲突的信息,但它们在用户主目录下(*nix中的快捷方式,c:\users\<用户名>通常用于Windows)。
其他细节
——user选项并非对每个命令都有效。例如,pip uninstall会找到并卸载安装的包(在用户文件夹、虚拟环境文件夹等),而——user选项无效。
使用pip install——user安装的东西将安装在本地位置,只有当前用户帐户才能看到,并且不需要root访问权限(在*nix上)或管理员访问权限(在Windows上)。
——user选项修改所有接受它的pip命令以查看/操作用户安装文件夹,因此如果您使用pip list——user,它将只显示使用pip install——user安装的包。