Linux开发板安装Python环境

news2025/1/23 3:15:12

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 --version

pip3 --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 --version

pip3 --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/python3

ln -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.coloradmin.cn/o/521965.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于常用设计模式的业务框架

前言 做开发也有好几年时间了,最近总结和梳理自己在工作中遇到的一些问题,工作中最容易写出BUG的需求就是改造需求了。一个成熟的业务系统是需要经过无数次迭代而成的,也意味着经过很多开发人员之手,最后到你这里,大部…

每日学术速递5.11

CV - 计算机视觉 | ML - 机器学习 | RL - 强化学习 | NLP 自然语言处理 Subjects: cs.CV 1.Diffusion Explainer: Visual Explanation for Text-to-image Stable Diffusion 标题:扩散解释器:文本到图像稳定扩散的视觉解释 作者:Seongmin…

【数据结构】【算法】二叉树、二叉排序树、树的相关操作

树结构是以分支关系定义的一种层次结构,应用树结构组织起来的数据,逻辑上都具有明显的层次关系。 操作系统中的文件管理系统、网络系统中的域名管理、数据库系统中的索引管理等都使用了树结构来组织和管理数据。 树的基本概念 树Tree是由n个节点组成的有…

数据结构-查找-散列结构(散列表)

目录 *一、散列表 二、散列函数 *除留余数法 *直接定址法 数字分析法 平方取中法 三、冲突处理方法--开发定地法 *3.1线性探测法 *查找效率: *3.2平方探测法 3.3伪随机序列法 3.4再散列法 *一、散列表 又称哈希表,数据元素的关键字与其存储…

bgp团体属性配置案例一

RouterA的配置 sysname RouterA interface GigabitEthernet1/0/0 ip address 192.168.0.1 255.255.255.0 interface LoopBack0 ip address 1.1.1.1 255.255.255.255 bgp 10 router-id 1.1.1.1 //Router ID,建议配置为LoopBack0的IP地址 peer 192.168.0.2 as-number …

【Linux】信号的处理

信号篇终章 文章目录 前言一、信号的处理 1.可重入函数 2.volatile关键字 3.SIGCHLD信号总结 前言 在前两篇linux文章中我们详细的讲解了信号的产生和信号的保存,今天来到最后一个重点信号的处理,对于信号的处理我们会重新引入进程…

如何实现一个高效的H264信源编码器?了解核心算法和实现流程

H264 H264是一种常用的视频编码标准,它以网络传输和存储为设计目的,能够将视频信号进行高效压缩,并保持较高的视频质量。 H264视频编码标准采用的是基于帧的编码方式。每一帧视频都被分为不同的块,每个块中都包含了可压缩的信息…

11.PC端网页特效

PC端网页特效 1. 元素偏移量 offset 系列 1.1 offset 概述 offset 翻译过来就是偏移量, 使用 offset 系列相关属性可以动态的得到该元素的位置(偏移)、大小等 获得元素距离带有定位父元素的位置获得元素自身的大小(宽度高度&a…

03:MYSQL----DQL,聚合函数

目录 1:介绍 2:语法 3:聚合函数 4:DOL 语句练习 5:SQL执行顺序 1:介绍 数据查询语言,用来查询数据库中表的记录 2:语法 select 字段列表 from 表名列表 where 条件列表 group by 分组字段列表 having 分组后字段列表 order by 排序字段列表 limit 分页参…

Vben Admin 自学记录 —— 使用 mock 模拟数据以及模拟api联调接口(持续更新中...)

Vben Admin —— 使用 mock 模拟数据以及模拟api联调接口 数据 mock&联调相关概念及使用 练习 —— 在之前table基础上,使用mock模拟数据,替换原来的死数据,添加新增、查看、修改和删除api并添加逻辑,实现一个简单的、完整的…

《编程思维与实践》1067.小型组合数

《编程思维与实践》1067.小型组合数 题目 思路 法一: 注意到题目数据最大为 C 40 20 137846528820 C_{40}^{20}137846528820 C4020​137846528820在long long的范围内,所以其实可以不用大整数的处理方法去计算: 由于 C m n m ! n ! ( m − n ) ! m ( m − 1 ) . . . ( m −…

mysql数据库的库操作 --2

目录 库操作 2.1:数据库的查看与创建与使用 2.2:字符集和效验规则 2.3:修改和删除数据库 2.4:数据库的备份和恢复 2.5:查看连接情况 库操作 2.1:数据库的查看与创建与使用 2.1.1:数据库…

AcWing算法提高课-1.3.9庆功会

宣传一下算法提高课整理 <— CSDN个人主页&#xff1a;更好的阅读体验 <— 本题链接&#xff08;AcWing&#xff09; 点这里 题目描述 为了庆贺班级在校运动会上取得全校第一名成绩&#xff0c;班主任决定开一场庆功会&#xff0c;为此拨款购买奖品犒劳运动员。 期望…

[golang gin框架] 32.Gin 商城项目- 支付宝支付操作相关功能讲解

一.支付宝支付之前的准备工作 创建应用、配置签名、提交审核 支付宝支付之前的准备工作 支付宝开放平台支持使用 普通公钥、公钥证书 两种签名方式 公钥证书模式下完成支付需要获取的内容&#xff1a; appId 应用私钥 应用公钥证书 支付宝根证书 支付宝公钥证书 普通公钥模式下…

热乎的面经——不屈不挠

⭐️前言⭐️ &#x1f349;欢迎点赞 &#x1f44d; 收藏 ⭐留言评论 &#x1f4dd;私信必回哟&#x1f601; &#x1f349;博主将持续更新学习记录收获&#xff0c;友友们有任何问题可以在评论区留言 &#x1f349;博客中涉及源码及博主日常练习代码均已上传GitHub &#x1f4…

【Linux常见指令以及权限理解】基本指令(3)

写在前面 上一篇文章&#xff0c;我们学习了Linux的一些常用指令&#xff0c; 学习了如何理解Linux系统&#xff0c;介绍了对Linux系统的理解&#xff1a;Linux下一切皆文件 介绍了重定向还有管道相关的知识。这里是上一篇博客的链接&#xff1a;http://t.csdn.cn/2d6fc 接…

Kali HTTrack演示-渗透测试察打一体(1)

HTTrack是一个免费并易于使用的线下浏览器工具,全称是HTTrack Website Copier for Windows,它能够让你从互联网上下载指定的网站进行线下浏览(离线浏览),也可以用来收集信息(甚至有网站使用隐藏的密码文件),一些仿真度极高的伪网站(为了骗取用户密码),也是使用类似工具做…

[一篇读懂]C语言十二讲:栈与队列和真题实战

[一篇读懂]C语言十二讲&#xff1a;栈与队列和真题实战 1. 与408关联解析及本节内容介绍1 与408关联解析2 本节内容介绍 2. 栈(stack)的原理解析2.1 **栈&#xff1a;只允许在一端进行插入或删除操作的线性表**2.2 栈的基本操作2.3 栈的顺序存储2.4 栈的链表存储 3. 初始化栈 -…

PE文件+UPX壳 ida分析

die查壳发现是UPX壳&#xff0c;直接用ida分析&#xff0c;会发现能分析出来的信息特别少&#xff0c;需要脱壳 工具链接发布 UPX/UPX (github.com) 下载压缩包后解压&#xff0c;直接在该文件路径下cmd&#xff0c;输入upx.exe -h安装完成&#xff0c;使用命令“upx -d 文件路…

计算机网络-网络层与链路层协议分析实验

一.实验目的 通过本实验&#xff0c;进一步熟悉PacketTracer的使用&#xff0c;学习路由器与交换机的基本配置&#xff0c;加深对网络层与链路层协议的理解。 二.实验内容 1.完成路由器交换机的基本配置 2.了解 ICMP 数据包的格式 3.检查ARP交换 三.实验过程 1.完成路由…