2. 安装Python¶
本章讲解如何在鲁班猫板卡上安装Python环境。
重要
教程一般基于Python 3.8.10版本(镜像系统是Ubuntu20.04)进行实验及讲解。
2.1. 关于Python版本¶
鲁班猫镜像是基于Debian、Ubuntu等Linux发行版本,这些发行版本默认都附带了python,一般附带python2*较旧的版本和python3*较新的版本, 可使用如下命令查看默认安装的版本(ubuntu20.04):
# 查看python3版本
cat@lubancat:~$ python3 --version
Python 3.8.10
# 查看python版本
cat@lubancat:~$ python2 --version
Python 2.7.18
# 查看pip3版本
cat@lubancat:~$ pip3 --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
提示
Debian10镜像默认安装的是python3.7.3;Debian11是python3.9.2
2.2. 安装python、pip¶
鲁班猫系统镜像基于Debian、Ubuntu等Linux发行版本,默认已经安装了python,如果没有安装可以使用apt命令安装和更新:
# 确认连接网络,第一次使用apt需要更新
sudo apt update
# 安装python3(默认系统已经安装可以不执行)
sudo apt -y install python3
# 安装pip工具
sudo apt -y install python3-pip
# 升级pip工具
python3 -m pip install --upgrade pip
# 配置pip源(清华源)
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
如果需要其他版本的python,Ubuntu系统可以使用PPA(个人软件包存档), PPA允许应用程序开发人员和Linux用户创建自己的软件仓库来分发软件,通过PPA可以轻松地获得更加新的软件版本或获得官方Ubuntu仓库以外的软件, 但需要注意这些软件的不稳定和安全性等。
下面我们测试在鲁班猫ubuntu20.04系统上使用 deadsnakes团队 维护的PPA, 添加该PPA后安装最新版本的Python及附加模块。
# 添加PPA,需要回车确认
sudo add-apt-repository ppa:deadsnakes/ppa
# 更新更新下apt缓存
sudo apt update
回车后确认添加,会更新下apt缓存,在输出信息中我们可以看到支持的列表:
Supported Ubuntu and Python Versions
====================================
- Ubuntu 20.04 (focal) Python3.5 - Python3.7, Python3.9 - Python3.13
- Ubuntu 22.04 (jammy) Python3.7 - Python3.9, Python3.11 - Python3.13
- Ubuntu 24.04 (noble) Python3.7 - Python3.11, Python3.13
- Note: Python2.7 (focal, jammy), Python 3.8 (focal), Python 3.10 (jammy), Python3.12 (noble)
are not provided by deadsnakes as upstream ubuntu provides those packages.
Why some packages aren't built:
- Note: for focal, older python versions require libssl<1.1 so they are not currently built
- Note: for jammy and noble, older python versions requre libssl<3 so they are not currently built
- If you need these, reach out to asottile to set up a private ppa
以上信息也可以到 deadsnakes 查看。
然后测试安装指定版本python:
# 安装python3.13
sudo apt install python3.13
# 检测版本
python3.13 --version
Python 3.13.0b2
# 安装其他附加模块(可选)
sudo apt install python3.13-full
# 或者单独安装python相关包(可选)
sudo apt install python3.13-dev python3.13-venv
最后,python安装还可以去官网下载 python源码包 ,然后自行编译安装。
2.3. python、pip的默认版本切换¶
2.3.1. 手动创建链接¶
可以注意到上面命令中python3、pip3都带了版本号,主要是由于python的历史原因, 这样使用能更好地与python2区分开来,而python2目前已经停止维护了,我们不建议大家继续使用。 使用我们提供的镜像默认是安装了python2和python3,可以设置当前系统默认的使用版本。
通过以下命令可以设置python、pip命令默认使用python3(可选):
#设置软链接,python默认使用python3
sudo ln -sf /usr/bin/python3 /usr/bin/python
#设置软链接,pip默认使用pip3
sudo ln -sf /usr/bin/pip3 /usr/bin/pip
设置后即可直接使用python或pip命令,检查当前系统python版本(可选):
#查看python路径
cat@lubancat:~$ which python
/usr/bin/python
# 查看python版本
cat@lubancat:~$ python --version
Python 3.8.10
# 查看pip版本
cat@lubancat:~$ pip --version
pip 20.0.2 from /usr/lib/python3/dist-packages/pip (python 3.8)
为了更明确地区分版本,本书后面依然直接使用python3或pip3命令进行说明。
2.3.2. 使用update-alternatives¶
update-alternatives是专门维护系统命令链接符的工具, 通过update-alternatives命令修改连接指向不同的实际程序或者动态库,实现多版本共存,动态切换的效果。
添加python方案链接,以前面安装了python3.13和python3.8的鲁班猫ubuntu20.04系统为例:
# 创建一个python方案链接,添加python3.13和python3.8,最后一个数字是优先级,数值越大,优先级越高
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.13 1
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 2
查看可选python版本,输入对应可选数字设置默认的python版本,这里测试设置python3.13为默认版本:
# 查看当前的python版本
cat@lubancat:~$ python --version
Python 3.8.10
# 然后列出系统上已安装的所有Python配置可选版本,这里重新设置python3.13为默认版本:
cat@lubancat:~$ sudo update-alternatives --config python
There are 2 choices for the alternative python (providing /usr/bin/python).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/bin/python3.8 2 auto mode
1 /usr/bin/python3.13 1 manual mode
2 /usr/bin/python3.8 2 manual mode
Press <enter> to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/python3.13 to provide /usr/bin/python (python) in manual mode
# 查看重新设置后的python
cat@lubancat:~$ sudo update-alternatives --query python
Name: python
Link: /usr/bin/python
Status: manual
Best: /usr/bin/python3.8
Value: /usr/bin/python3.13
Alternative: /usr/bin/python3.13
Priority: 1
Alternative: /usr/bin/python3.8
Priority: 2
# 重新设置python版本后,查看版本
cat@lubancat:~$ python --version
Python 3.13.0b2
如果不需要update-alternatives管理python,删除请使用命令:
# 删除单个python链接
sudo update-alternatives --remove python /usr/bin/python3.13
# 删除所有python方案链接
sudo update-alternatives --remove-all python
2.4. 软件库安装方法¶
2.4.1. pip下载加速¶
在后面使用Python时,可能会需要使用pip工具下载安装依赖软件包,而官方下载站 pypi 在国内的访问较慢, 参考如下网页说明设置镜像网站: Pypi 镜像使用帮助 。
例如,使用pip安装软件包adafruit-circuitpython-ssd1306:
# 使用apt安装python的adafruit-circuitpython-ssd1306包
sudo pip3 install adafruit-circuitpython-ssd1306
# 使用pip list查看安装的包
pip3 list | grep adafruit-circuitpython-ssd1306
# 使用pip uninstall 卸载包
sudo pip3 uninstall adafruit-circuitpython-ssd1306
2.4.2. 用apt代替pip安装软件包¶
使用pip工具安装软件包时,通常是在本机中进行编译的,部分鲁班猫板卡的性能不高导致编译时间非常长, 还可能因为缺少某些库文件而安装失败。
所以在使用性能不高的板卡安装依赖包时,我们建议先直接搜索一下是否能使用apt工具安装, 它会从软件库中下载预先编译好的软件包,安装时间基本只取决于网络速度。 需要安装更新版本或者apt找不到的包时才使用pip安装。
例如,python常用的numpy数据科学库,如下使用如下apt命令安装,很快就完成了:
# 使用apt安装python的numpy包
sudo apt -y install python3-numpy
至于其它具体软件包在apt工具中的名字,可以在网络中搜索 “apt 安装XXX(如numpy)” 之类的内容, 如果你使用的是debian系统,在debian的软件列表库中查找关键字如 “numpy” :查找debian官方软件包 。
2.4.3. 用setuptools工具安装软件包¶
在有些情况下,我们用户需要使用到的一些Python库包。由于一些原因, 我们只获取到了这些库包的源码。那么我们用pip工具或者apt工具就没有办法去安装了。
这时我们可以使用python的setuptools工具,来通过库包源码进行Python库包的安装。
setuptools工具安装方法如下:
# 在终端中输入如下命令:
sudo apt -y install python3-setuptools
下面我们来使用一下setuptools工具。
以Python下的jieba(结巴)库为例,该库可以用于中文分词,是Github一个非常热门的开源Python项目。
其Github仓库为: jieba
我们可以从其仓库拉取源码或者下载其Releases压缩包并安装。
源码目录如下:
进入源码目录,使用setuptools工具通过源码安装库:
#拉取源码
git clone https://github.com/fxsjy/jieba.git
# 进入jieba/目录,在终端中输入如下命令:
sudo python3 setup.py install
等待软件包安装完成即可。
输入下面命令,可以看到,jieba库已经可以正常使用了,分词效果如下:
#登录系统终端,输入python3或者ipython,进入python交互模式,然后使用命令:
import jieba
set_list = jieba.cut("欢迎来到野火Python实践教程", cut_all=False)
print("Default Mode:" + "/".join(set_list))