我正在尝试在 Ubuntu 18.04 LTS 上安装适用于 Python 3.8 的
pip
。前面的问题并不涉及具体保留 Ubuntu 的默认设置。这些问题的答案要么不起作用,要么继续提出一些激进的建议,以至于会破坏系统——例如将默认 python3
版本从 3.6
更改为 3.8
,您不应该。
到目前为止,我已经能够使用 python3.8
成功安装
ppa:deadsnakes/ppa
:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
我使用 python
将
update-alternatives
命令从 Python 2 更改为 Python 3.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.5
问题是,我仍然无法安装Python 3.8的pip
。
python3-pip
,它会为 Python 3.6 安装
pip
,因为
python3
仍然指向
python3.6.9
,并且我打算保持这种状态。
python-pip
,它将安装适用于 Python 2.7 的
pip
。
python3.8-pip
这样的包,所以我无法安装它:
sudo apt install python3.8-pip
输出:
E: Unable to locate package python3.8-pip <br>
E: Couldn't find any package by glob 'python3.8-pip' <br>
E: Couldn't find any package by regex 'python3.8-pip'
pip
?
pip
作为 Python
module
(推荐方式):
python -m pip --version
我是这样安装的(这样就可以直接调用):
首先,确保命令 pip
可用并且它没有被
pip
用于
Python 2.7
sudo apt remove python-pip
现在,如果您在终端中输入 pip
,您会发现那里没有安装任何内容:
pip --version
输出:
未找到命令“pip”,但可以使用以下命令安装:安装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.1
安装为
pip3
:
pip3 --version
输出:
pip 9.0.1 来自 /usr/lib/python3/dist-packages (python 3.6)现在,要为
pip
安装
Python 3.8
,我使用了
pip
,将其称为
python module
(讽刺!):
python -m pip install pip
输出:
收集点看起来,当我将下载
https://files.pythonhosted.org/packages/36/74/38c2410d688ac7b48afa07d413674afc1f903c1c1f854de51dc8eb2367a5/pip-20.2-py2.py3-none-any.whl(1.5MB) 100% |████████████████████████████████| 1.5MB 288kB/秒
安装收集的包:pip
成功安装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 来自 /home/qumber/.local/lib/python3.8/site-packages/pip (python 3.8)
甜甜的!
官方文档中的建议,您可以尝试使用get-pip.py
。
wget https://bootstrap.pypa.io/get-pip.py
python3.8 get-pip.py
这会将 pip 安装为 pip3.8
。确保您已安装
python3.8-distutils
以避免出现以下错误
"No module named 'distutils.cmd'" error.
您可以使用以下方式安装distutils
:
sudo apt install python3.8-distutils
# install py3.8 and dependencies for the pip3 bootstrap script
add-apt-repository -y ppa:deadsnakes/ppa && \
apt install -y python3.8 python3.8-distutils
# download and run the pip3 bootstrap script
cd /tmp && wget https://bootstrap.pypa.io/get-pip.py && \
python3.8 /tmp/get-pip.py
# use pip py3.8 module to install python packages
python3.8 -m pip install numpy pandas
sudo apt install python3-pip
。它安装的 pip 版本适用于所有版本的 Python,不仅适用于版本 3.6 一旦安装,您只需使用命令
python3.8 -m pip install pip
更新 pip,他将为 Python 安装最新版本的 pip。我不建议你删除Python2,因为它是系统的一个重要模块,你应该在
.bashrc
中为Python3创建一个永久的“别名”,我确实喜欢这个
alias python="python3.8
。
RUN apt update --fix-missing && \
apt install python3.8 -y && \
update-alternatives --install /usr/bin/python python /usr/bin/python3.8 10
为 python 3.8 安装 pip RUN apt install python3-pip -y && \
python -m pip install --upgrade pip
将我所做的写成博客文章。
最后,我想我可能做了与上面答案基本相同的事情,但如果你迷失了方向,也许我的屏幕截图等会有所帮助。这是我所做的过程的概要:
python3-pip
卸载 python-pip
和 apt
pip
中删除旧的 /usr/local/bin
文件
python3-pip
重新安装 apt
$HOME/.local/bin
添加到您的
$PATH
(同时重新启动您的 shell 以确保您做得正确)