python - 如何在不更改任何默认值的情况下在 Ubuntu 上为 python 3.8 安装 pip?

标签 python python-3.x ubuntu pip ubuntu-18.04

我正在尝试安装 pip对于 Python 3.8Ubuntu 18.04 LTS .

I know this has been asked way too many times. But those questions do not concern keeping Ubuntu's defaults specifically. And the answers on those questions either don't work or go on to suggest something so drastic that it would break the system - e.g. change default python3 version from 3.6 to 3.8. You SHOULDN'T!


到目前为止,我已经能够安装 python3.8成功使用 PPA - ppa:deadsnakes/ppa :
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
已更改 python来自 python2 的命令至python3.8使用 update-alternatives :
update-alternatives --remove python /usr/bin/python2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 10
现在,我得到 python 3.8当我运行 python --version :

Python 3.8.5


问题是,我还是无法安装pip对于 Python 3.8 .
如果我尝试安装 python3-pip ,它会安装 pip对于 Python 3.6自从 python3仍然指向 python3.6.9 ,我打算保持这种状态。
尝试安装 python-pip ,它将安装pip对于 Python 2.7 .
也没有像 python3.8-pip 这样的包。 ,所以我不能像这样安装它:
sudo apt install python3.8-pip
输出:

E: Unable to locate package python3.8-pip
E: Couldn't find any package by glob 'python3.8-pip'
E: Couldn't find any package by regex 'python3.8-pip'


我该怎么做才能安装pip对于 Python 3.8在 Ubuntu 18.04 上?

最佳答案

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

python -m pip --version
我是这样安装的(所以可以直接调用):
首先,确保命令 pip可用且未被 pip 使用对于 Python 2.7
sudo apt remove python-pip
现在如果你写 pip在终端中,您会发现那里没有安装任何东西:
pip --version
输出:

Command 'pip' not found, but can be installed with:

sudo apt install python-pip


安装 python3.8并在 python 上设置正确的版本命令使用 update-alternatives (如问题中所做的那样)。
确保你有 python3-pip安装:
(如果没有 python3-pip ,这将无法工作。虽然这将安装 pip 9.0.1 from python 3.6 ,但我们需要它。)
sudo apt install python3-pip
这将安装 pip 9.0.1pip3 :
pip3 --version
输出:

pip 9.0.1 from /usr/lib/python3/dist-packages (python 3.6)


现在,安装 pip对于 Python 3.8 , 我用 pip通过将其称为 python module (讽刺!):
python -m pip install pip
输出:

Collecting pip
  Downloading https://files.pythonhosted.org/packages/36/74/38c2410d688ac7b48afa07d413674afc1f903c1c1f854de51dc8eb2367a5/pip-20.2-py2.py3-none-any.whl (1.5MB)
  100% |████████████████████████████████| 1.5MB 288kB/s
Installing collected packages: pip
Successfully installed pip-20.2


看起来,当我调用 pip (它是为 Python 3.6 安装的,顺便说一句)作为 Python 3.8 的一个模块,并安装了 pip ,它确实有效。
现在,确保您的 ~/.local/bin目录设置在 PATH环境变量:
打开~/.bashrc使用您最喜欢的编辑器(如果您使用的是 zsh ,请将 .bashrc 替换为 .zshrc )
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

现在,如果您尝试运行 pip直接它会给你正确的版本:
pip --version
输出:

pip 20.2 from /home/qumber/.local/lib/python3.8/site-packages/pip (python 3.8)


甜的!

关于python - 如何在不更改任何默认值的情况下在 Ubuntu 上为 python 3.8 安装 pip?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63207385/

相关文章:

python - 从 keras 模型中提取特征到数据集中

python - 如何在未触及的 python etree 中正确转义 XML?

javascript - Django - Javascript - Csrf token

java - Ubuntu 16.04 : Tomcat 8 won't start with setenv. sh

linux - 如何链接到旧版本的数学库?

Linux - 我可以在 aarch64 架构上运行 arm64 二进制文件吗?

python - 类 datetime.time 不能转换为 pandas 中的日期时间

python - 鹡鸰:获取上一个或下一个 sibling

python - 使用 boto3 根据 AssumeRolePolicyDocument 中的操作列出角色名称

python-3.x - 如何在文本分类的拆分数据测试和训练中修复 'typeerror: only integer scalar arrays can be converted to a scalar index'