NXP i.MX6ULL 移植python3.9.5

项目场景:

眺望电子TW-AC6G-EVM开发板上移植python3.9.5:

编译环境及开发包:
主机:ubuntu18.04
交叉编译器:arm-linux-gnueabihf-gcc
QT5.12.8:qt-everywhere-opensource-src-5.12.8
开发板:TW-AC6G-EVM
Linux:Linux-4.1.15
串口工具:Xshell

注意:本文章的所有命令涉及到的路径均为眺望电子官方环境路径,需根据自身实际环境改变。本文所演示的平台来自于眺望电子 iMX6ULL ARM嵌入式平台,这是一个基于NXP iMX6ULL ARM处理器,主频800MH在 Cortex-A7的核心板。


解决方案:

1.Python3.9.5源码下载&解压

Python官网地址:https://www.python.org/downloads/source/,进入后点击如图1.1下载python3.9.5源码。
Python3.9.5下载

拷贝相应的源码Python-3.9.5.tar.xz到Ubuntu进行解压,命令如下:

xz -d Python-3.9.5.tar.xz
tar xvf Python-3.9.5.tar

2.编译HOST解释器

在交叉编译的时候需要在HOST PC上运行对应版本的Python程序,所以需要先编译HOST PC上面用的Python,运行以下命令

cd Python-3.9.5/
./configure --prefix=$PWD/../_install_host --enable-shared
make -j4
make install
make distclean

–-prefix指定的目录可自行修改,但不要放在Python-3.9.5目录里,因为后续执行make distclean会清掉一些文件。
make install安装成功

把生成HOST PC端即_install_host目录中的bin和lib,加到环境变量里面去,后续交叉编译就会自动找到python3了,其指令如下:

export PATH=/home/twdz/_install_host/bin:$PATH
export LD_LIBRARY_PATH=/home/twdz/_install_host/lib:$LD_LIBRARY_PATH

输入以上指令后,在Ubuntu输入python3 指令 如图2.2所示:
图2.2

3.配置交叉编译工具链

这里采用的是arm-linux-gnueabihf交叉编译工具链

/home/twdz/ctools/gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux/bin/arm-linux-gnueabihf-gcc

配置交叉编译工具链命令如下:

cd Python-3.9.5/
mkdir _install
./configure --host=arm-linux-gnueabihf --build=armv7 --prefix=$PWD/_install --enable-ipv6 --enable-shared ac_cv_file__dev_ptmx="yes" ac_cv_file__dev_ptc="no"

–host是交叉编译工具链,–build表示编译出来的程序运行的处理器,–prefix表示安装目录。

4.编译&安装

在Python-3.9.5目录中,运行以下命令

make -j4
make install

make成功

make install成功

安装完成后如图4.3所示
图4.3

5.移植到开发板

将交叉编译出来的python目录(即图4.1中_install目录)中的 /bin/* 复制到开发板的/usr/bin中,将/lib/*复制到开发板的 /usr/lib中。

6.测试Python3.9.5

在开发板中输入python3,出现图6.1所示的信息。
在这里插入图片描述

测试python基础模块的导入如图6.2所示,退出Python可按Ctrl+Z键或输入exit()。
在这里插入图片描述

7.编译Python3其他模块

请根据其他相应模块先独自交叉编译,编译出对应的lib、include目录后,在第2小节configure配置命令中加入对应的目录,如下以下指令中的LDFLAGS、CPPFLAGS参数

./configure --host=arm-linux-gnueabihf --build=armv7 --prefix=$PWD/_install --enable-ipv6 --enable-shared ac_cv_file__dev_ptmx="yes" ac_cv_file__dev_ptc="yes" LDFLAGS="-L/home/twdz/zlib-1.2.11/build/lib" CPPFLAGS="-I/home/twdz/zlib-1.2.11/build/include"

此次测试了zlib模块的移植,如图7.1所示能成功加载zlib。
在这里插入图片描述

  • 8
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

眺望电子-ARM嵌入式

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值