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

今日头条

1141人已加入

描述

 

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/,或者使用压缩包中提供的源码。 

 

 

 

通过 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。 

4412开发板 

 

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

 

 

4412开发板 

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

 

4412开发板 

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

4412开发板 

 

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

 

4412开发板 

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

 

 

4412开发板 

 

2.2 arm 补丁
交叉编译的补丁我们已经放到 minilinux 目录下,执行命令 patch -p1 <
/home/minilinux/Python-2.7.3-xcompile.patch 进行打补丁。 

 

 

4412开发板 

 

 

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 

 

4412开发板 

 

 

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

4412开发板 

 

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

4412开发板 

 

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

 

 

 

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

4412开发板 

 

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

 

 

4412开发板 

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

 

 

 

4412开发板 

 

执行以下命令安装到指定文件夹“make install HOSTPYTHON=./hostpython
BLDSHARED="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 是指定的安装目录,用户根据实际
情况更改 

 

4412开发板 

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

 

4412开发板 

 

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

4412开发板 

 

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

4412开发板 

 

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

 

4412开发板 

 

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

 

 

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

 

 

 

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

 

 

 

 

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

 

 

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

 

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

4412开发板 

 

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

 

4412开发板 

 

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

4412开发板 

 

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

 

4412开发板 

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

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

 

 

 

 


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分