Linux开发板安装Python环境

news/2024/11/23 2:29:56/

1. 环境介绍

硬件:STM32MP157,使用的是野火出的开发板。

软件:Debian ARM 架构制作的 Linux 发行版,版本信息如下:

  • Linux发行版本:Debian GNU/Linux 10

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-638UKCvO-1683977654644)(picture/image-20230502233159734.png)]

  • 内核版本:4.19.94
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kC5e9sge-1683977654645)(picture/image-20230502233606658.png)]

2. Python 简介

对于 Python 是什么,此处简要概括如下:

  • Python 是一种跨平台的解析型编程语言

  • Python 易学、易用、功能强大,被大量应用在 AI、数据处理、编程教育中

  • 大量的开发者提供了各种 Python 代码库,其他人可以使用这些库轻松开发自己的程序

3. 安装python3环境

3.1 使用 apt 命令安装

1)先确认是否安装了python3

python3 --versionpip3 --version

输入上面两条命令,查看是否有输出python的版本信息,如果没有那么说明还没有安装python环境。

2)安装python3

安装之前,请先确认自己的板卡是否能联网。可以ping百度的网址:

ping www.baidu.com

如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Xp07sxGh-1683977654645)(picture/image-20230502115743172.png)]

虽然延迟有点高,但是可以确定确实能联网。

然后运行如下命令:

# 在板卡上执行如下命令,需要联网
# 第一次使用apt需要更新
sudo apt update# 安装python3
sudo apt -y install python3# 安装pip工具
sudo apt -y install python3-pip

安装过程如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KlIKoIRI-1683977654645)(picture/image-20230502120540564.png)]

3)确认是否安装完成

运行下面两条命令,查看是否能打印python的版本信息:

python3 --versionpip3 --version

如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CMYZvFsH-1683977654645)(picture/image-20230502120825344.png)]

可以看到,安装的是python3.7版本。

但是我想要安装的是python3.8,或者更高的版本,而是用apt命令,默认安装的是3.7版本。然后网上找了一些参考,安装更高版本只能下载python源码,然后自行编译安装。

3.2 安装更高版本python

下面我以安装python3.10.9版本为例,记录下安装过程。

大家可以参考官网这篇文章的介绍进行安装:

https://computingforgeeks.com/how-to-install-python-on-ubuntu-linux-system/

官网介绍了也可以通过命令安装python3.10以上的版本,但是我在自己的开发板试过了,安装失败,所以下面我只介绍下载源码,进行编译安装。

1)安装构建python3.10所需依赖

sudo apt update
sudo apt install build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev

安装过程中需要确认的,输入y即可。

2)下载python3.10.9源码

wget https://www.python.org/ftp/python/3.10.9/Python-3.10.9.tgz

上面是使用wget命令下载,我们也可以在电脑上到python的官网下载,然后想办法把文件传输到开发板即可。

3)解压缩python3.10.9

tar -zvxf Python-3.10.9.tgz 

4)进入解压目录,运行configure文件

cd Python-3.10.9
./configure --enable-optimizations

configure脚本可以检查所需的依赖项,–-enable optimization标志通过运行多个测试来优化二进制文件。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t3BdEcTz-1683977654645)(picture/image-20230502131211400.png)]

发现有一些提示是 no ,这里我还不知道有什么影响,先按照步骤走吧,如果提示失败然后再一步步解决。

5)开始编译

make -j2

其中,-j2参数是你的CPU核心数,比如我的CPU是2核心的,那么我这里就使用-j2。如果是4核心的则可以使用-j4。

这里编译要超级久(我是在开发板编译的,可能开发板的CPU运行太慢了),等到最后编译完成是如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zNN5KMX2-1683977654646)(picture/image-20230502152101781.png)]

编译过程中出现了一些找不到文件或文件夹的情况,我暂时没有去管他,就继续下一步了。

6)安装

安装其实就是把我们编译好的可执行文件,复制到系统的某个存放执行文件的目录,我们运行下面命令,会自动帮我们完成所有事情。

make altinstall

其中,make altinstall与make install的区别,altinstall skips creating the python link and the manual pages links。

即,altinstall跳过创建python链接和手册页链接的操作。

如果使用make install,在系统中将会有两个不同版本的Python在/usr/bin/目录中,这将会导致很多问题。

安装完成之后如下图所示:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TgyPKVGk-1683977654646)(picture/image-20230502152734082.png)]

7)验证是否安装完成

输入如下命令:

python3.10

然后可以看到打印信息如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-D2nN153X-1683977654646)(picture/image-20230502223617302.png)]

说明已经完成安装了。

4. 设置python软链接默认指向python3.10

4.1 更新python指向

1)删除原来python3的软链接

我原来的apt模式安装的python3.7版本,它的软链接文件在哪,可以使用which命令查找:

which python3

可以查找到是在 /usr/bin/python3 的路径。

然后使用rm命令删除这个原有软链接:

rm /usr/bin/python3

2)新建python3指向3.10版本

我们先查找python3.10在哪个目录:

which python3.10

如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ec5qZYJx-1683977654646)(picture/image-20230502230358782.png)]

然后使用ln命令新建软链接:

ln -s /usr/local/bin/python3.10 /usr/bin/python3ln -s /usr/local/bin/python3.10 /usr/bin/python

我这里新建了两个软链接 python 和 python3 都指向了 3.10 版本。如果你只需要 python3 这个软链接,那么你只执行其中一条命令即可。

4.2 更新pip指向

更新pip工具指向,和上面的更新python指向是一样的。都是先找到原来的软链接指向,然后删除,然后再创建新的软链接指向即可。

这里不详细介绍,只记录需要使用的命令如下:

# 删除原有软链接
rm /usr/bin/pip3# 查找pip3.10路径
which pip3.10# 建立新的软链接
ln -s /usr/local/bin/pip3.10 /usr/bin/pip3
ln -s /usr/local/bin/pip3.10 /usr/bin/pip

更新完之后,我们查看 pip 工具版本:

pip --version

如下图:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gGdevW6v-1683977654647)(picture/image-20230502231830224.png)]

到这里就把python3.10的环境安装完成了。如果能用 apt 命令安装的话,其实也就是一条命令的事,但是我想安装的是 python3.8 以上的版本,然后这个命令安装失败,所以不得不自己下载python源码,然后自行编译安装。


http://www.ppmy.cn/news/68814.html

相关文章

十、Feign客户端

目录 1、在springcloud-order项目中引入Feign客户端的依赖 2、在server-order服务的启动类中添加注解EnableFeignClients 3、使用FeignClient注解声明Feign客户端需要调用的远程接口 3.1、server-pay服务提供远程接口Controller 3.2、server-member服务提供远程接口Contro…

从小白到黑客高手:一份全面详细的学习路线指南

前言 黑客从入门到精通需要经过深入的学习和实践,这是一个需要长时间投入和大量精力的过程。在这份学习路线中,我将为你介绍黑客学习的基本知识和技能,帮助你逐步掌握黑客技能。 黑客 一、入门阶段 1.了解计算机基础知识 学习计算机基础知…

MySQL深入浅出: order by if()与order by in()之条件排序

目录 1:原表数据 2:order by if() 3:order by in() 4:社区地址 1:原表数据 2:order by if() SELECT * FROM people ORDER BY IF(…

使用Kubernetes进行CI/CD的最佳实践

使用Kubernetes进行CI/CD的最佳实践 一、概述1 CI/CD的定义2 Kubernetes在CI/CD中的重要性3 Kubernetes用于CI/CD的优势 二、Kubernetes的CI/CD工作流程1 代码构建1.1 使用Docker镜像构建1.2 使用Kubernetes插件构建 2 代码集成和测试2.1 使用Kubernetes的namespace分离测试环境…

【地铁上的设计模式】--行为型模式:策略模式

什么是策略模式 策略模式是一种行为型设计模式,它允许在运行时选择算法的行为。这种模式通过定义一系列算法,并将每个算法封装到一个独立的类中,使得它们可以相互替换。通过这种方式,客户端可以根据需要选择要使用的算法&#xf…

Postgresql数组与Oracle嵌套表的使用区别

oracle中的多维数组 Oracle中常说的数组就是嵌套表,下面给出两个多维使用实例,引出和PG的差异: 一维赋值(第一行给1列) set serveroutput on; declaretype arr_num is table of number;type arr_arr_num is table o…

算法修炼之练气篇——练气十四层

博主:命运之光 专栏:算法修炼之练气篇 前言:每天练习五道题,炼气篇大概会练习200道题左右,题目有C语言网上的题,也有洛谷上面的题,题目简单适合新手入门。(代码都是命运之光自己写的…

vuex的使用

私人博客 许小墨のBlog —— 菜鸡博客直通车 系列文章完整版,配图更多,CSDN博文图片需要手动上传,因此文章配图较少,看不懂的可以去菜鸡博客参考一下配图! 系列文章目录 前端系列文章——传送门 后端系列文章——传送…