我想在Ubuntu 18.04 LTS上安装pipPython 3.8

我知道这已经被问了太多次了.但这些问题与具体保持Ubuntu的默认设置无关.这些问题的答案要么不起作用,要么继续暗示一些极端的事情,这会 destruct 系统——例如,将默认的python3版本从3.6更改为3.8.你是SHOULDN'T

到目前为止,我已经能够使用PPA-ppa:deadsnakes/ppa成功安装python3.8:

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

使用update-alternativespython命令从python2更改为python3.8:

update-alternatives --remove python /usr/bin/python2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 10

现在,当我运行python --version时得到python 3.8:

Python 3.8.5

问题是,我仍然无法为Python 3.8安装pip

sudo apt install python3.8-pip

输出:

E:找不到包python3.8点

要在Ubuntu18.04上安装pipforPython 3.8,我该怎么做?

推荐答案

作为推荐的方式(我们可以直接使用Python module):

python -m pip --version

我就是这样安装的(因此可以直接调用):

sudo apt remove python-pip

现在,如果你在终端中写入pip,你会发现那里没有安装任何东西:

pip --version

输出:

找不到命令"pip",但可以安装以下命令:

sudo-apt安装python-pip

使用update-alternatives安装python3.8并在python命令上安装正确的版本(如问题中所述)

确保已安装python3-pip个:

sudo apt install python3-pip

这将把pip 9.0.1安装为pip3:

pip3 --version

输出:

来自/usr/lib/python3/dist包(python 3.6)的pip 9.0.1

现在,要为Python 3.8安装pip,我将pip称为python module(ironic!):

python -m pip install pip

输出:

收集pip

看起来,当我把pip(它是为Python3.6安装的,顺便说一句)作为Python3.8的一个模块调用,并安装了pip时,它实际上起到了作用

现在,确保在PATH环境变量中设置了~/.local/bin目录:

nano ~/.bashrc

并将以下内容粘贴到文件末尾

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
    PATH="$HOME/.local/bin:$PATH"
fi

最后,找到.bashrc(或重新启动终端窗口):

source ~/.bashrc

现在,如果您try 直接运行pip,它将为您提供正确的版本:

pip --version

输出:

pip 20.2 from/home/qumber/.local/lib/python3.8/站点包/pip(python 3.8)

Sweet!

Python-3.x相关问答推荐

在Python中从mySQL获取多行

Python将类实例变量转换为嵌套 struct

丢弃重复的索引,并在多索引数据帧中保留一个

在Python中从列创建新行

使用 Fetch 提交表单到 Django 视图

链接列未延伸到数据框的末尾

三重奏:为什么频道被记录为使用async with,而不是with?

裁剪复数以解决 exp 中的溢出错误

找到操作系统的图片文件夹的 CLI

你如何表达一个没有参数的 Python Callable?

Python socket.error: [Errno 13] 权限被拒绝

django rest框架中的save()、create()和update()有什么区别?

smtplib 在 Python 3.1 中发送带有 unicode 字符的邮件的问题

在数据类中创建类变量的正确方法

为什么 virtualenv 会有效地禁用 Python 3 制表符补全?

创建日志(log)文件

无法在 Windows 8 中使用 Python 3.3 找到 vcvarsall.bat

向 Python 函数添加属性的最佳方法

将字符串拆分为最大长度 X 的片段 - 仅在空格处拆分

finally 总是在 try 块返回之前运行,那么为什么 finally 块中的更新不会影响 try 块返回的变量的值呢?