4412的linux移植教程,[资料分享]4412开发板移植Python 教程

Python 如何移植到 ARM 开发板上,并有几个简单的测试例程在迅为资料里下载的分享给大家学习~1源码包和文档在一起的源码包有:“python-2.7.3 源码和补丁.zip”---python 压缩包和补丁文件;“install_python.tar”---编译好的 sqlite 库文件;“sqlite-autoconf-3240000.tar.gz”---sqlite 的源码文件;“测试程序”---python 测试例程。去 Python 官网下载源码包 2.7.3,地址https://www.python.org/downloads/source/,或者使用压缩包中提供的源码。

5d6d8866781ee02fc576d65f29487f74.png

通过 ssh 将 Python-2.7.3.tar.bz2h 和补丁 Python-2.7.3-xcompile.patch 拷贝到ubuntu 系统的 home/miniLinux 目录下,使用命令 tar -vxf Python-2.7.3.tar.bz2 解压源码压缩包得到目录 Python-2.7.3。

18154194275d13d74dc5883d41377d68.png

2编译2.1 编译 host 版解释器编译 Python 的嵌入式版需要解释器解析 setup.py 从而编译 Python 的模块,因此需要先编译出 HOST 的解释器。进入解压出来的“Python-2.7.3”目录,执行命令“./configure”运行配置文件。

375e0e9f9f080aa8bf509db36fcf18ae.png

执行配置文件之后,生成 Makefile 等文件。

c10b56e2636a0831f87e3a55429faa2e.png

执行命令“make python Parser/pgen”,编译 PC 版 python Parser/pgen

ef0b140546e82db8cfbc05bbde73a1e4.png

执行命令“mv python hostpython”将生成的 PC 版移动至 hostpython执行命令“mv Parser/pgen Parser/hostpgen”将生成的 PC 版解释器移动至Parser/hostpgen。

d8425ec4b77dce479e48129398638c4f.png

执行命令“make distclean”清除不必要的文件。

9c2acf3a91047d09796ced9621d6445e.png

2.2 arm 补丁交叉编译的补丁我们已经放到 minilinux 目录下,执行命令 patch -p1

7374dd47e6b223fdf28a1685cd24bb8b.png

2.3 交叉编译配置在“/home/miniLinux/Python-2.7.3”目录下执行以下命令进行设置设置交叉编译器 CC=arm-none-linux-gnueabi-gcc设置 C++交叉编译器 CXX=arm-none-linux-gnueabi-g++设置 AR AR=arm-none-linux-gnueabi-ar设置 RANLIB RANLIB=arm-none-linux-gnueabi-ranlib

81fedd50471891bc545bf74cc556369e.png

2.4 编译和安装测试将压缩包中提供的编译好的 sqlite3 库“install_python.tar”通过 ssh 拷贝到/home/minilinux 下然后解压,得到“install_python”。用户也可以自己编译 sqlite3 库,本文后面一小节介绍库的编译。

a233ff6a60969fe4be034b3c2c8450c1.png

执行命令“cd /home/miniLinux/Python-2.7.3”进入 Python-2.7.3,执行命令“vimsetup.py”修改 setup.py。

5870d30f8191d74a4db552cd3897654a.png

定位到 1024 行,向下找到 1044 行将 paths 改为 install_python 所在路径,如下图所示。

729e7f21edf30dfd86dfc894f7488bf4.png

定位到 1099 行,修改路径如下图所示。

779d4ea8ecf38432d6903f12080ef820.png

执行命令“./configure --host=arm-none-linux-gnueabi --prefix=/python ”生成符合交叉编译器的 Makefile。

1189e5ddf8bc176c4c2e6328a435444e.png

执行 make 命令进行编译“make HOSTPYTHON=./hostpythonHOSTPGEN=./Parser/hostpgen BLDSHARED="arm-none-linux-gnueabi-gcc -shared"CROSS_COMPILE=arm-none-linux-gnueabi- CROSS_COMPILE_TARGET=yes”此时会提示缺失模块,忽略。

46470c1c583118eadf6922a0b3d62f72.png

执行以下命令安装到指定文件夹“make install HOSTPYTHON=./hostpythonBLDSHARED="arm-none-linux-gnueabi-gcc -shared" CROSS_COMPILE=arm-nonelinux-gnueabi- CROSS_COMPILE_TARGET=yes prefix=/home/minilinux/Python-2.7.3/_install”。其中prefix=/home/minilinux/Python-2.7.3/_install是指定的安装目录,用户根据实际情况更改。

9259c3ca939a7c12472475a23279275b.png

使用命令“ls _install”查看结果:

f4d9ee71db6a4e8111b5a88e6540dd97.png

拷贝库文件“install_python/lib/libsqlite3.so.0”到“/Python-2.7.3/_install/lib/”下。

b52b67e4ad85027b02104a495b5c480c.png

将_install 目录整个打包,拷贝到开发板上的“/data”目录下,然后解压,笔者使用的是最小系统搭建的有 nfs 共享文件,用户也可以通过 U 盘拷贝过去。

dcaa7a1e022702c534096ac2966ec63e.png

进入_install 目录,使用命令“export export LD_LIBRARY_PATH=/data/_install/lib:$LD_LIBRARY_PATH”

63eda1fa20e3242dfd2250e0b80fea1e.png

3运行测试3.1 库功能文件测试进入_install/bin 目录下使用命令./python,然后使用 import 加载各模块如下图所示则 python 移植成功。按 ctrl+d 退出。

50d5e2b61c063d8ff530725375c98def.png

3.2 数据库测试在提供的压缩包里提供的有 sqlite3 数据库的例程 sqlite3test.txt,例程解释如下。

58d998d6292455855c953deb50b7fa31.png

执行命令”./python sqlite3test.txt” 可以看到生成了数据库文件 test.db 文件。

984b4bae895f893ffacff099681427e6.png

使用数据库查看软件查看到表中写入的数据如下。

4ed71e648c3cac2567eba7d77f70bc95.png

3.3 TIme 和 dateTIme 测试在提供的压缩包里提供的有 TIme 测试的例程 TImetest.txt,通过 U 盘将测试例程拷贝到开发板的/data/_install/bin 下,执行命令“./python timetest.txt”可完成时间格式的转换和微秒级时间差的计算

eb1c1dd5584662e03180f48a09d98943.png

4 sqlite3库的移植和文档一起有数据库的压缩包,也去 sqlite 官网下载最新的数据库,通过 ssh 拷贝到/home/minilinux 目录下,使用命令“tar -vxf sqlite-autoconf-3240000.tar.gz ”解压,如下图所示

cfcbff775eee8daf5f1d2576cd8da057.png

进入解压后生成的文件夹“sqlite-autoconf-3240000”,执行命令“./configure --host=arm-none-linux-gnueabi --prefix=/home/minilinux/sqlite-autoconf-3240000/install_python --enable-shared”。

cd68d9a8286fc7121fb28bbc5eb046ff.png

如下图所示,生成 Makefile 等必要文件,执行“make”命令进行编译。

ef24bf4abaaedee050cb278b9920b981.png

执行命令“make install”,会看到在 sqlite-autoconf-3240000 目录下产生文件夹install_python,执行命令“ls install_python”可以看到目录下有:bin include lib 三个文件夹。

7633844e8eec67566824f15f67eb791b.png

至此 sqlite3 的库已经编译完成,用户需要其他的库文件也可以照此编译。

转自迅为:http://www.topeetboard.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值