更换Colab的Python版本

1.5k 词

引言

Colab团队十分自负x,除了在更新Python版本时提供上一个版本的Python,目前没有使用3.11以外版本的选项。

但是有一些包可能不支持特定的Python版本,这就麻烦大了。

主要参考这个回答,目前能够成功降级。

更换Python版本

这里选择降级到Python3.9。

在提示重启的时候重启。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
!sudo apt-get update -y

!sudo apt-get install python3.9

!sudo apt-get install python3.9-distutils

!sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 1

!sudo update-alternatives --config python3
# 假如知道要选择的版本,可以直接选择
# !echo 3 | sudo update-alternatives --config python3

!apt-get install python3-pip

!python -m pip install --upgrade pip --user

# 以下两条可能并不必要
!echo -e 'export PATH="$PATH:/root/.local/bin"' >> $HOME/.bash_profile
!echo -e 'export PATH="$PATH:/root/.local/bin"' >> $HOME/.bashrc

至此,其实已经成功更换了Python版本。

1
!python --version

1
Python 3.9.21

更换cell使用的Python版本

但是notebook还没有,另外一些方法到此为止,每个cell都需要执行%%bash来选择环境。

但是这个方法可以让cell直接使用3.9。

1
2
3
4
5
6
7
8
9
10
11
12
!sudo update-alternatives  --set python3 /usr/bin/python3.9

!curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
!python3 get-pip.py --force-reinstall

!python3 -m pip install ipython ipython_genutils ipykernel jupyter_console prompt_toolkit httplib2 astor

!ln -s /usr/local/lib/python3.11/dist-packages/google \
/usr/local/lib/python3.9/dist-packages/google

!sed -i "s/from IPython.utils import traitlets as _traitlets/import traitlets as _traitlets/" /usr/local/lib/python3.9/dist-packages/google/colab/*.py
!sed -i "s/from IPython.utils import traitlets/import traitlets/" /usr/local/lib/python3.9/dist-packages/google/colab/*.py

至此已经完全更换了Python版本。

1
2
import sys
print(sys.version)
1
2
3.9.21 (main, Dec  4 2024, 08:53:33) 
[GCC 11.4.0]