Qum*_*ber 15 python ubuntu pip python-3.x ubuntu-18.04
我试图安装pip的Python 3.8上Ubuntu 18.04 LTS。
我知道这已经被问了太多次了。但是这些问题并不特别关注保留 Ubuntu 的默认值。而这些问题的答案要么不起作用,要么继续提出一些过于激烈的建议,以至于会破坏系统——例如将默认
python3版本从更改3.6为3.8。你不应该!
到目前为止,我已经能够python3.8使用PPA-成功安装ppa:deadsnakes/ppa:
sudo add-apt-repository ppa:deadsnakes/ppa
sudo apt update
sudo apt install python3.8
Run Code Online (Sandbox Code Playgroud)
将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
Run Code Online (Sandbox Code Playgroud)
现在,python 3.8我运行时得到python --version:
蟒蛇 3.8.5
问题是,我仍然无法安装pipfor Python 3.8.
如果我尝试安装python3-pip,它会安装pipforPython 3.6因为python3仍然指向python3.6.9,我打算保持这种方式。
尝试安装python-pip,它将pip为Python 2.7.
也没有这样的包python3.8-pip,所以我不能像这样安装它:
sudo apt install python3.8-pip
Run Code Online (Sandbox Code Playgroud)
输出:
E: 无法找到包 python3.8-pip
E: 无法通过 glob 'python3.8-pip'
找到任何包 E: 无法通过正则表达式 'python3.8-pip' 找到任何包
我能做些什么来安装pip了Python 3.8的Ubuntu 18.04?
Qum*_*ber 16
虽然我们可以pip直接作为 Python 使用module(推荐的方式):
python -m pip --version
Run Code Online (Sandbox Code Playgroud)
这就是我安装它的方式(因此可以直接调用它):
首先,确保该命令pip可用并且没有被pipforPython 2.7
sudo apt remove python-pip
Run Code Online (Sandbox Code Playgroud)
现在,如果您pip在终端中写入,您会发现那里没有安装任何东西:
pip --version
Run Code Online (Sandbox Code Playgroud)
输出:
找不到命令“pip”,但可以使用以下命令安装:
sudo apt 安装 python-pip
使用命令安装python3.8和设置正确的版本(如问题中所述)。pythonupdate-alternatives
确保您已python3-pip安装 :(
没有 就无法工作python3-pip。虽然这会安装pip 9.0.1 from python 3.6,但我们需要它。)
sudo apt install python3-pip
Run Code Online (Sandbox Code Playgroud)
这将安装pip 9.0.1为pip3:
pip3 --version
Run Code Online (Sandbox Code Playgroud)
输出:
来自 /usr/lib/python3/dist-packages (python 3.6) 的 pip 9.0.1
现在,要安装pipfor Python 3.8,我pip将其称为python module(具有讽刺意味!):
python -m pip install pip
Run Code Online (Sandbox Code Playgroud)
输出:
收集PIP
下载https://files.pythonhosted.org/packages/36/74/38c2410d688ac7b48afa07d413674afc1f903c1c1f854de51dc8eb2367a5/pip-20.2-py2.py3-none-any.whl(1.5MB)
100%| ????????? ???????????????????????????| 1.5MB 288kB/s
安装收集包:pip
成功安装 pip-20.2
看起来,当我调用pip(它是为 Python 3.6 安装的,顺便说一句)作为 Python 3.8 的模块并安装时pip,它实际上工作了。
现在,确保您的~/.local/bin目录设置在PATH环境变量中:使用您喜欢的编辑器
打开~/.bashrc(如果您正在使用zsh,请替换.bashrc为.zshrc)
nano ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
并将以下内容粘贴到文件末尾
# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/.local/bin" ] ; then
PATH="$HOME/.local/bin:$PATH"
fi
Run Code Online (Sandbox Code Playgroud)
最后,获取您的.bashrc(或重新启动终端窗口):
source ~/.bashrc
Run Code Online (Sandbox Code Playgroud)
现在,如果您尝试pip直接运行,它将为您提供正确的版本:
pip --version
Run Code Online (Sandbox Code Playgroud)
输出:
来自 /home/qumber/.local/lib/python3.8/site-packages/pip (python 3.8) 的 pip 20.2
甜的!
Vai*_*and 15
正如官方文档中建议的,您可以尝试使用get-pip.py.
wget https://bootstrap.pypa.io/get-pip.py
python3.8 get-pip.py
Run Code Online (Sandbox Code Playgroud)
这会将 pip 安装为 pip3.8。
- - 更新
确保您已python3.8-distutils安装以避免出现以下错误
"No module named 'distutils.cmd'" error.
Run Code Online (Sandbox Code Playgroud)
您可以distutils使用以下方式安装:
sudo apt install python3.8-distutils
Run Code Online (Sandbox Code Playgroud)
# 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
Run Code Online (Sandbox Code Playgroud)
小智 5
另一个解决方案是安装 apt 中的 pip。sudo apt install python3-pip。它安装的 pip 版本适用于所有版本的 Python,而不仅仅是 3.6 版本。一旦安装,您只需使用命令更新 pip python3.8 -m pip install pip,他就会安装适用于 Python 的最新版本的 pip。
我不建议你删除Python2,因为它是系统的一个重要模块,你应该为.bashrcPython3创建一个永久的“别名”,我确实喜欢这样alias python="python3.8。