如何在Ubuntu 18上为Python 3.7安装pip?

129

我在我的Ubuntu 18.04机器上安装了Python 3.7。按照这些说明操作,以防有关联:

Download : Python 3.7 from Python Website [1] ,on Desktop and manually unzip it, on Desktop Installation : Open Terminal (ctrl +shift+T)

Go to the Extracted folder
$ cd ~/Desktop/Python-3.7.0
$ ./configure
$ make
$ sudo make install

Making Python 3.7 default Python :

$ sudo vim ~/.bashrc
press i
on the last and new line - Type
alias python= python3.7
press Esc
type - to save and exit vim
:wq
now type
$ source ~/.bashrc
从这里开始:https://www.quora.com/How-can-I-upgrade-Python-3-6-to-3-7-in-Ubuntu-18-04 我通过 "pip install module" 下载了几个模块,但是当我尝试导入它们时,出现了 "ModuleNotFoundError: No module names 'xx'" 错误。
经过一些研究,我发现使用 pip 安装时,它将模块安装在之前版本的 Python 中。在某处(可能是 SO 中的一个问题)我找到了一个建议,使用 "python3.7 -m pip install module" 来安装模块,但是然后我得到了 "/usr/local/bin/python3.7: no module named pip" 错误。
现在我陷入了困境,pip 已安装,但显然不适用于 Python 3.7。我假设如果我能为 Python 3.7 安装 pip,则可以运行 pip install 命令并获取所需的模块。如果是这种情况,我应该如何为 Python 3.7 安装 pip,因为它已经安装了呢?
这是我想到的最好的解决方案:
我已成功安装 Python 3.7,并且我可以使用 pip(或 pip3)安装模块,但是这些模块安装在 Ubuntu 自带的 Python 3.6 中。因此,我无法在 Python 3.7 中导入这些模块(会出现 "module not found" 错误)。
Python 3.7 无法识别 pip/pip3,因此我无法通过 pip/pip3 安装模块。我需要 Python 3.7。
14个回答

167

一般而言,不要这样做

pip install package

因为正如你正确注意到的那样,不清楚你要安装哪个 Python 版本的 package

如果你想安装 Python 3.7 版本的 package请按照以下步骤进行:

python3.7 -m pip install package

用你要安装的任何东西的名称来替换package

我也花了很长时间才弄清楚,有关它的文档在这里

另一种选择是设置一个虚拟环境。一旦激活了您的虚拟环境,像pythonpip这样的可执行文件名将指向正确的文件。


70
已经尝试过,输出结果为/usr/local/bin/python3.7: no module named pip(pip3同样如此)。 - Justcurious
14
听起来你的Python 3.7安装缺少pip。你可以尝试使用以下命令安装它:python3.7 -m ensurepip。另外,我注意到你是从源代码安装的。如果上述选项对你不起作用,那么也许可以尝试通过apt进行安装:apt install python3.7?apt包会自带pip模块。 - mpenkov
6
我尝试了 python3.7 -m ensurepip,它已经安装了,但是当我使用 python3.7 -m pip install package 时出现了很多错误。由于我在虚拟机上,我回到安装 Python 3.7 之前尝试了 apt install python3.7,然后再使用 python3.7 -m pip install package。现在一切都正常运行。谢谢! - Justcurious
2
你应该用你想要安装的包的名称来替换“package”。 - mpenkov
15
没有找到 ensurepip 模块。 - Rainb
显示剩余8条评论

134

对于mpenkov上面的答案,我有一个快速补充(不想让这个在评论中被忽略)

对我来说,我必须先安装3.6版本的pip

sudo apt install python3-pip

现在您可以安装Python 3.7。

sudo apt install python3.7

然后我可以为3.7安装pip。

python3.7 -m pip install pip

作为额外的奖励,要安装其他模块,只需在前面加上

python3.7 -m pip install <module>

编辑1(2019年12月):

我知道这对大多数人来说是显而易见的。但如果你想要Python 3.8,只需将python3.7替换为python3.8

编辑2(2020年5月):

对于那些能够升级的人来说,Ubuntu 20.04刚刚发布,Python 3.8已经可以直接使用。


4
谢谢!完成步骤后,调用 pip3.7 似乎也可以正常工作。 - toster-cx
为什么会发生这种情况,有人能解释一下这种奇怪的行为吗? - Adrian Forsius
2
这也需要 export PATH=$HOME/.local/bin:$PATH,因为 python3.7 -m pip install pip 会将 pip 安装到 $HOME/.local/ 中。 - manasouza

35

这对我来说可行。

curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py

然后使用sudo运行此命令:

python3.7 get-pip.py

参考这份说明


需要按照 https://dev59.com/I1QJ5IYBdhLWcg3wERuZ#57921046 上的其他命令运行。 - Lucas

22
我使用apt-get在ubuntu18.04中安装了Python3.7。具体安装步骤如下:
  1. 安装Python3.7
sudo apt-get install python3.7 
  1. 安装pip3。需要注意的是,这可能会为Python3.6安装pip3。
sudo apt-get install python3-pip 
  1. 更改Python3的默认版本为Python3.7。这就是“魔法”所在,它将使pip3引用Python3.7。
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.7 1

希望这对你有用。


谢谢!这是最完整的方法,因为它涵盖了您的系统可能有另一个Python3的事实。 - Mehdi Hadji

10

要安装所有当前支持的Python版本(Python 3.6已经预安装)以及Ubuntu 18.04的pip,请按照以下步骤操作:

要安装Python 3.5和Python 3.7,请使用deadsnakes PPA:

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt-get update
sudo apt-get install python3.5
sudo apt-get install python3.7

通过发行版软件包安装Python2.7:

sudo apt install python-minimal  # on Ubuntu 18.04 python-minimal maps to python2.7

要安装pip,请使用:

sudo apt install python-pip  # on Ubuntu 18.04 this refers to pip for python2.7
sudo apt install python3-pip  # on Ubuntu 18.04 this refers to pip for python3.6
python3.5 -m pip install pip # this will install pip only for the current user
python3.7 -m pip install pip

我用它来为一个Python项目设置包括tox和Jenkins在内的CI链。


9

结合@mpenkon和@dangel的答案,是对我有效的方法:

  1. sudo apt install python3-pip

  2. python3.7 -m pip install pip

第一步是必需的(假设您尚未安装Python3的pip),以使第二步工作。 显然它使用Python3.6的pip来安装Python 3.7的pip。


6
这里的一个问题是sudo apt install python3-pip不能保证安装的是Python3.7,也可能安装其他版本的Python3。 - manasouza
这是真的,但奇怪的是为什么它似乎有效(我想;绝不是Linux大师)。似乎需要某种引导式方法,因为你无法使用未安装的软件来安装你没有的软件。无论如何,对我而言它确实起作用了。你在跟随这种方法时遇到问题了吗? - bob
以它没有安装Python 3.7的方式来看,是的。在考虑Ubuntu 18.04的情况下,最好的方法肯定是使用“sudo apt install python3.7”。 - manasouza

3

当我使用apt install python3-pip命令时,会提示需要安装许多其他的包,但是我并不需要这些包。因此,我可以采取以下步骤:

apt update
apt-get install python3-setuptools
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python3 get-pip.py
rm -f get-pip.py

引发 ModuleNotFoundError: No module named 'distutils.cmd'(Python 3.7.15) - GooDeeJAY

3

安装Python的前置条件

sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev wget

安装Python 3.7(从PPA仓库)

sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.7

安装pip3.7

sudo apt install python3-pip
python3.7 -m pip install pip

创建Python和pip的替代方案

sudo update-alternatives --install /usr/local/bin/python python /usr/bin/python3.7 10
sudo update-alternatives --install /usr/local/bin/pip pip /home/your_username/.local/bin/pip3.7 10

修改

source ~/.bashrc
python --version
pip --version

3
以下步骤可供使用:

sudo apt-get -y update
---------
sudo apt-get install python3.7
--------------
 python3.7
-------------
 curl -O https://bootstrap.pypa.io/get-pip.py
-----------------
sudo apt install python3-pip
-----------------
sudo apt install python3.7-venv
-----------------
 python3.7 -m venv /home/ubuntu/app
-------------
 cd app   
----------------
 source bin/activate

sudo apt-get update sudo apt-get -y update sudo apt-get install python3.7 python3.7 curl -O https://bootstrap.pypa.io/get-pip.pysudo apt install python3-pip sudo apt install python3.7-venv python3.7 -m venv /home/ubuntu/app cd app ---- source bin/activate - Anil Konduru

1

对于那些打算使用venv的人:

如果你还没有用于Python 3的pip:

sudo apt install python3-pip

安装 venv 包:
sudo apt install python3.7-venv

创建虚拟环境(默认情况下将使用pip引导):
python3.7 -m venv /path/to/new/virtual/environment

要激活虚拟环境,请从虚拟环境的bin目录中为当前shell选择适当的脚本进行source。不同shell的适当脚本如下:
bash/zsh – activate fish – activate.fish csh/tcsh – activate.csh 例如,如果使用bash:
source /path/to/new/virtual/environment/bin/activate

如果需要更新虚拟环境下的pip,可以在激活状态下执行以下命令:

pip install --upgrade pip

当您想要停用虚拟环境时:
deactivate 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接