很可能,pip3 将安装指向您的 Python 3 安装,因此您的用例可能只需从以下位置切换即可解决:
$ pip install foo
到:
$ pip3 install foo # Or pip3.7 install foo if you need to disambiguate further
也就是说,当您安装许多不同的 Python 时,它会变得有点复杂,其中 pip/pip3 可能已安装指向与 python/@987654328 不对应的 Python 版本@你正在使用,这可能会很混乱。
如果您知道python 和python3 是正确的可执行文件,只需使用它代表您调用pip。这也很容易,只需检查您的版本以确保它是您期望的版本(例如在我的系统上):
$ python --version
Python 2.7.15rc1
$ python3 --version
Python 3.6.6
然后使用带有-mpip 的适当标志,该标志通过选择的Python 作为“主”可执行文件运行已安装的模块/包,完全绕过了对特定版本的pip 可执行文件的需要。所以如果你想在我的机器上为 Python 3.6 安装 foo,你可以运行:
$ python3 -mpip install foo
这在 Windows 上特别有用,其中pip 可执行文件通常不存在,或者没有安装在PATH 中,因此使用它们很烦人。相反,请使用任何现代 Python 3 版本附带的Windows launcher(但管理机器上的所有 Python 版本),并用于消除各种版本之间的歧义。例如:
C:\>; Installs foo for latest installed version of Python 3
C:\>py -3 -mpip install foo
C:\>; Installs foo for latest installed version of Python 2
C:\>py -2 -mpip install foo
C:\>; Installs foo for latest installed version of Python 3.6
C:\>py -3.6 -mpip install foo
基本上,pip 的任何使用都可以通过直接使用-mpip 选项执行 Python 解释器来替换,以将 pip 包作为“主”可执行文件运行。
此技巧适用于许多其他带有专用启动器的工具,这些工具通常未安装在PATH 中,尤其是在 Windows 上,它也使更新更容易;我用于启动 ipython3 的 Windows 快捷方式从未使用过启动器的硬编码路径(例如 C:\Program Files\Python36\Scripts\ipython3.exe),而是使用 %WINDIR%\py.exe -3 -mIPython。除了更便携(该快捷方式在任何安装了半新 Python 3 的 Windows 系统上“正常工作”)之外,它还可以自我更新;当我从 3.6 升级到 3.7 时,快捷方式根本不需要更改(我必须再次运行 py -3 -mpip install ipython 才能重新安装 IPython,但是一旦我这样做了,快捷方式就无缝地开始引用 3.7 安装无需更改)。