python可移植到嵌入式平台吗_Python 3.4.3 移植到Arm平台的步骤
找了好多资料都没有py3.4的移植教程,无奈自己开始摸索,经过3天的研究终于把这个给研究明白了!下面是步骤:2.解压源码我下载的是Python-3.4.3.tgz,tar xvf Python-3.4.3.tgz3.进入解压目录之后,进行简单的设置,要不然会碰到编译错误:echo ac_cv_file__dev_ptmx=no >> config.siteecho ac_cv_file
找了好多资料都没有py3.4的移植教程,无奈自己开始摸索,经过3天的研究终于把这个给研究明白了!下面是步骤:
2.解压源码
我下载的是Python-3.4.3.tgz,
tar xvf Python-3.4.3.tgz
3.进入解压目录之后,进行简单的设置,要不然会碰到编译错误:
echo ac_cv_file__dev_ptmx=no >> config.siteecho ac_cv_file__dev_ptc=no >> config.siteexport CONFIG_SITE=config.site
4.可以进行python的 configure了,不过一定要记住是在root权限下执行./configure:
./configure CC=arm-linux-gnueabihf-gcc-4.7.3CXX=arm-linux-gnueabihf-g++ AR=arm-linux-gnueabuhf-ar RANLIB=arm-linuxgnueabihf-gcc-ranlib--host=arm-linux-gnueabihf --build=i686-linux --disable-ipv6 上面arm-linux-gnueabihf就是交叉编译器了,根据情况自行选择
5.编辑Makefile,在CONFIGURE_LDFLAGS后面添加 -s -lrt 两个选项,第一个是清除不必要的文件,第二个是去掉错误库连接的提示
6.最后 make python 就可以了.
上面的过程就是交叉编译的过程,完成后,会在当前目录生成一个 可执行的”python”文件 ,将这个文件和Lib目录复制到arm平台上面。设置好环境变量就可以使用了。
我是把把可执行文件python 放到 /bin里面, Lib文件夹放到/usr/bin/
指定环境变量 编辑/program/startup.sh 添加代码 export PYTHONPATH=/usr/bin/Lib
然后在命令行输出 python –V 就出现了版本号。
执行python命令时,发现可以正确显示版本号,不过无法进入命令行,提示缺少encodings,那是因为还没有把Python的Lib复制过来。所以,剩下只需要把要用到的标准库文件都复制过来就行了。
如果出现还是缺少文件的情况下, 就去安装好的linux python3.4版本 的/usr/lib/python3.4里面找复制过去就可以了
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
下面说说如何在嵌入式里面安装开发包:
我用的盒子是一个裁剪的linux系统,用起来和linux是一样的(暂时未发现有什么不一样的地方),在里面安装pip 包管理器
https://bootstrap.pypa.io/get-pip.py这是get-pip文件 ,用python 执行下这个文件 就会自动安装pip了(用火狐打开这个链接就可以直接下载这个文件了)
在安装get-pip的时候 可能会遇到一些错误,比如说你编译的python有些模块不存在,或者是缺少动态库!
下面就是我遇到的缺少zlib库
这个只要交叉编译一下zlib的源码就可以了,下面是交叉编译的方式:
tar -zvcf zlib-mastercd zlib-masterexport CC=arm-linux-gnueabihf-gcc-4.7.3./configure --prefix=$PWD/_install //这个选项是指定编译的文件路径make 或者make install
装完这个libz库之后,我又遇到了这样的错误:
这个只要把刚刚导入进去的libz.so.1删除掉,然后 在arm平台 用ln –s libz.so.x.y.z libz.so.1 重新生成一个软连接就可以了
在安装pip的时候 又碰到了缺少ssl库
下面附上一个 arm平台 交叉编译的方法的链接:
(以上安装pip管理工具理论如此,但本人尚未实验成功)
更多推荐
所有评论(0)