您的位置:首页 > 编程语言 > Python开发

python3.4交叉编译与移植

2015-02-26 20:32 176 查看
学习Python已经有些念头,不过一直都是在PC上面编程,现在正好有项目需要在ARM中使用Pyhon,可以将Python发扬光大。以下记录交叉编译与移植的具体步骤。

首先在https://www.python.org下载Pyhon3.4.3的源码

1、此编译环境是,Ubuntu 14.04 交叉编译版本采用的是arm-linux-gnueabihf 4.7版本

2、mkdir ~/work

cd ~/work

下载代码后解压缩 tar xvf Python-3.4.3.tgz

3、编辑Modules/Setup文件,将其中需要集成的内部模块注释去掉

我主要保留了_csv,posix,errno,pwd,_sre,_codecs,_weakref,_functools,_operator,_collections,itertools,atexit,_stat,_locale,_io,zipimport,faulthandler,_tracemalloc,_symtable,array,cmath,math,_struct,time,_weakref,_random,_pickle,_datetime,_bisect,_heapq,_csv,_socket,_md5,_sha1,_sha256,_sha512,binascii,parser,_multibytecodec,_codecs_cn

首先要交叉编译zlib,如何编译可以参考google,再将libz.a , zconf.h , zlib.h拷贝到arm编译起的lib目录与include目录(此方法不合适,肯定有更合适的)

4、echo ac_cv_file__dev_ptmx=no > config.site

echo ac_cv_file__dev_ptc=no >> config.site

export CONFIG_SITE=config.site

./configure CC=arm-linux-gnueabihf-gcc CXX=arm-linux-gnueabihf-g++ AR=arm-linux-gnueabihf-ar RANLIB=arm-linux-gnueabihf-ranlib LDFLAGS=-lrt --host=arm-linux-gnueabihf --build=armv7 -disable-ipv6 --without-ensurepip --enable-loadable-sqlite-extensions --prefix=/home/xxxx/Python3.4/python34

make python

5、需要修改sudo chmod 660 /etc/sudoers

sudo vim.tiny /etc/sudoers

在Defaults路径下面增加交叉编译器的路径,原因是在编译时编译器会自动调用sudo sh命令,结果会提示无法找到arm-linux-gnueabihf-ranlib命令:

Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/home/sungrow/arm-linux-gnueabihf-4.7-20130415/bin"

6、运行安装命令

make install

7、打包将软件包拷贝到嵌入式目标板上解压缩

tar -jcvf python34.tar.bz2 python34

以下为目标板的控制台操作

cd ~/

wget -c ftp://x.x.x.x/python34.tar.bz2
tar -xvf python34.tar.bz2

export PYTHONHOME=/home/xxxx/python34

export PYTHONPATH=/home/xxxx/python34/Lib

编译成功,已经在目标板上验证通过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: