如何在Ubuntu系统上安装Python和pip工具?
Ubuntu系统上有自带的Python,并且Ubuntu系统本身就依赖于Python运行。我们可以通过输入
python --version
来查看当前Python的版本。如果你还没有在这个Ubuntu系统上安装过Python,那你看到的就是系统自带的Python了。但是这个默认的Python可能不满足我们的要求,因为它的版本可能比较低。
orangepi@orangepi5plus:~$ python --version
Python 2.7.18
这里强调一点,Ubuntu系统本身依赖这个Python运行,所以千万不要卸载这个系统自带的Python!!!
那我们如何在 Ubuntu 系统上安装我们需要的Python版本呢?
以 Python 3.10 为例:
1. 添加 Deadsnakes PPA
首先我们需要添加 Deadsnakes PPA,这是一个专门用于提供不同Python版本的存储库。执行命令:
sudo add-apt-repository ppa:deadsnakes/ppa
执行后会输出
......
For nightly builds, see ppa:deadsnakes/nightly https://launchpad.net/~deadsnakes/+archive/ubuntu/nightly
More info: https://launchpad.net/~deadsnakes/+archive/ubuntu/ppa
Press [ENTER] to continue or Ctrl-c to cancel adding it.
这时我们按下 Enter 键即可安装这个 PPA 。
2. 安装Python和相关工具
执行命令:
sudo apt-get update
sudo apt-get install python3.10 python3.10-venv python3.10-distutils
即可安装 Python 3.10 。如果你想安装其他版本的Python,将命令中的“3.10”改为你需要的版本号即可。
3. 安装pip(如果还没安装)
执行命令:
curl -sS https://bootstrap.pypa.io/get-pip.py | sudo python3.10
即可安装pip。如果你需要其他版本的pip工具,将命令中的“3.10”改为你需要的版本号即可。
4. 配置python和pip命令指向 Python 3.10
现在你已经安装了python和pip,但是还没有结束。当你执行到这里时,你的系统上有 Python 3.10 ,但是当你尝试查看Python的版本时:
orangepi@orangepi5plus:~$ python --version
Python 2.7.18
你会发现输出的还是系统默认的Python版本。这是因为虽然系统已经安装了 Python 3.10 ,但是 ‘python’ 命令指向的还是原来的版本,我们需要手动更改 ‘python’ 命令所指向的版本。
执行命令:
ls /usr/bin/python*
查看系统中已经存在的Python版本。
如图,可以看到现在我的系统中有Python 2.7、Python 3.8 和 Python 3.10 ,其中2.7和3.8是系统自带的。我们可以将它们都添加到Python选项中。执行:
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.10 3
这样三个版本的Python就被添加到了Python选项中。注意命令中Python的路径要正确。接下来我们执行:
sudo update-alternatives --config python
可以看到输出:
‘Selection’ 一列就是不同版本所对应的序号。我们选择manual mode中所需版本对应的序号即可。例如现在我需要 Python 3.10 版本,那么我输入2,然后按 Enter 键即可。
设置后查看Python的版本,可以发现已经切换到我们想要的版本了:
orangepi@orangepi5plus:~$ python --version
Python 3.10.14
那么Python就设置好了,接下来我们设置pip。查看pip的版本:
orangepi@orangepi5plus:~$ pip --version
pip 24.2 from /usr/local/lib/python3.10/dist-packages/pip (python 3.10)
可以发现pip所指向的版本就是已经安装的3.10版本,无需进行更多的设置。这是因为我使用的Ubuntu系统中没有自带的pip工具,在安装 pip 3.10 之前是无法使用pip命令的,安装之后pip命令也只能找到3.10这个版本,所以无需进行更多的设置。
但是如果你发现安装了 pip 3.10 之后,pip --version 命令输出的版本不是3.10,那应该是因为你之前安装过其他版本的pip,或者是你的系统自带了其他版本的pip。这时候应该怎么办呢?设置的方法和Python类似。执行:
ls /usr/bin/pip*
ls /usr/local/bin/pip*
查看你的系统中有哪些版本的pip。假设你发现除了你安装的3.10版本外,还有一个3.8版本的pip,那么你可以执行
sudo update-alternatives --install /usr/bin/pip pip /usr/bin/pip3.8 1
sudo update-alternatives --install /usr/local/bin/pip pip /usr/bin/pip3.10 2
这样就可以把两个版本的pip添加到选项中。注意将命令中pip的路径更改为你看到的正确的路径。命令最后的数字1和2是指优先级,如果你有更多版本的pip,可以继续添加,然后将优先级递增即可。
添加到选项中后,运行
sudo update-alternatives --config pip
即可查看你添加的pip版本。然后输入manual mode中所需版本对应的序号,再按下 Enter 键即可(序号是 ‘Selection’ 一列)。如果你只添加了一个版本的pip选项,那么执行这行命令后会输出
There is only one alternative in link group pip (providing /usr/bin/pip): /usr/local/bin/pip3.10
Nothing to configure.
这说明只有一个选项,无需进行设置。
到这里,安装Python和pip就完成了。
- 其他问题
- 什么是 manual mode 和 auto module ?
manual mode 是手动模式,auto module 是自动模式。手动模式下,用户自己选择一个版本;自动模式下,系统将根据优先级自动选择默认版本。 - 优先级(Priority)的数字有什么用?
系统会自动选择优先级最高的选项作为默认选项。在上文的例子中,在自动模式下,系统会选择优先级更高的 /usr/bin/python3.10 作为默认的 ‘python’ 命令,因为3.10版本的Python优先级为3,是最高的。 - 如何切换自动模式和手动模式?
如果要切换到手动模式,执行
update-alternatives --config python
然后选择一个版本。
如果要切换到自动模式,执行
update-alternatives --auto python
即可。
如果要设置pip,将以上命令中的python改为pip即可。
在本文的例子中,将Python设置为自动模式也可以让 ‘python’ 命令指向 Python 3.10 版本。