如何在安装了python 2和3的情况下使用pip? (OSX)

时间:2018-11-12 18:59:53

标签: python python-3.x pip pipenv

我试图在我的OSX笔记本电脑上使用python 3。

我需要安装对python 3的请求,但它不起作用。

我想我已经为python 2.7和python 3都安装了pip ...

每当我使用'pip'时,它都指向python2 ...我似乎无法访问python 3的pip?

4 个答案:

答案 0 :(得分:3)

很可能会安装pip3来指向您的Python 3安装,因此您的用例很容易解决,只需从以下位置切换即可:

$ pip install foo

收件人:

$ pip3 install foo  # Or pip3.7 install foo if you need to disambiguate further

也就是说,当您安装了许多不同的Python时,它可能会变得很复杂,其中可能安装了pip / pip3来指向与{{ 1}} / python在使用中,可能会造成混乱。

如果您知道python3python是正确的可执行文件,只需使用它代表您调用python3。这也很容易,只需检查您的版本以确保它是您期望的版本(例如在我的系统上):

pip

然后将适当的选项与$ python --version Python 2.7.15rc1 $ python3 --version Python 3.6.6 一起使用,该标志通过选定的Python作为“主要”可执行文件来运行已安装的模块/程序包,而完全不需要特定版本的-mpip可执行文件。因此,如果您想在我的机器上为Python 3.6安装pip,请运行:

foo

这在Windows上尤其有用,在Windows上$ python3 -mpip install foo 可执行文件通常不存在或没有安装在pip中,因此使用它们很烦人。相反,请使用任何现代Python 3版本随附的Windows launcher(但可以管理计算机上的所有Python版本),并用于消除各种版本之间的歧义。例如:

PATH

基本上,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选项执行Python解释器以将-mpip程序包作为“主要”可执行文件来运行来替换。

此技巧适用于许多其他带有专用启动器的工具,这些工具通常未安装在pip中,尤其是在Windows上,它也使更新更容易;我用于启动PATH的Windows快捷方式从未使用到启动器的硬编码路径(例如ipython3),而是使用C:\Program Files\Python36\Scripts\ipython3.exe。除了具有更高的可移植性(快捷方式“仅在安装了最新版本的Python 3的任何Windows系统上都可以使用”)之外,它还可以自我更新。当我从3.6升级到3.7时,快捷方式根本不需要更改(我必须再次运行%WINDIR%\py.exe -3 -mIPython才能重新安装IPython,但是一旦完成,快捷方式就开始无缝地引用3.7安装,无需更改)。

答案 1 :(得分:0)

运行以下命令以查找在运行pip which python之前使用的python。您可以按照相同的想法来查找正在运行的pip版本:which pip

您需要创建单独的虚拟环境才能使用不同的python版本和/或python依赖项。使用conda或venv之类的工具来执行此操作。然后,在使用pip安装新软件包之前,请确保已激活所需的python版本虚拟环境。

答案 2 :(得分:0)

要为requests安装python3,请使用pip3 install requests,它是Python 3模块的pip安装程序。

本指南提供了有关在Mac上运行Python 3的更多信息。 https://docs.python-guide.org/starting/install3/osx/

答案 3 :(得分:0)

首先尝试sudo apt-get update,然后尝试sudo apt-get install python3-pip --fix-missing