找了好多资料都没有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管理工具理论如此,但本人尚未实验成功)

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐