Ubuntu14.04 交叉编译Python2.7.2 for arm
2014-08-05 14:05
441 查看
这是我第一次写博文,碰巧最近正在学习Python,有个项目需要把Python2.7.2移植到arm-linux平台上,苦苦试了N天都没成功,在yahoo(不知道为什么Google连不上去)上搜了一篇大牛的博文,于是就试着做了一遍,终于成功了,亲测可用,也许其他版本的Python也适用,现把关键步骤翻译一下,与大家分享!
原文地址:点击打开链接
然后解压:
这将会创建一个名为:Python-2.7.2的文件夹,进入这个文件夹。
依次执行以下代码:
以上代码生成了交叉编译过程中需用到的两个程序:pgen和python,然后把他们分别更名为:hostpgen和hostpython,如果不更名,在交叉编译时会生成同名文件覆盖他们,这样的话之前的工作就白干了!
Step3:给Python安装文件打补丁
下载对应版本的补丁文件,这里以Python2.7.2为例:
原文地址:点击打开链接
Step1:下载Python
首先,你应该去官网下载你想要使用的Python:http://www.python.org然后解压:
tar -xvzf Python-2.7.2.tgz
这将会创建一个名为:Python-2.7.2的文件夹,进入这个文件夹。
cd Python-2.7.2
Step2:创建可在PC上运行的脚本解释器
在交叉编译Python时,需要用到pgen解释器,如果编译的是arm架构的解释器,显然是不能在PC上运行的,会导致编译失败,所以要首先编译出一个能在PC上运行的pgen。依次执行以下代码:
./configure make python Parser/pgen mv python hostpython mv Parser/pgen Parser/hostpgen make distclean
以上代码生成了交叉编译过程中需用到的两个程序:pgen和python,然后把他们分别更名为:hostpgen和hostpython,如果不更名,在交叉编译时会生成同名文件覆盖他们,这样的话之前的工作就白干了!
Step3:给Python安装文件打补丁
下载对应版本的补丁文件,这里以Python2.7.2为例:wget http://randomsplat.com/wp-content/uploads/2011/10/Python-2.7.2-xcompile.patch[/code]其他版本补丁的下载地址:
Python-2.6.6-xcompile.patch
Python-2.7.2-xcompile.patch (With ctypes thanks to Jaux (jaux.net)
Python-2.7.3-xcompile.patch ( Thanks to Lothsahn)
Python-3.1.1-xcompile.patch
Python-3.1.2-xcompile.patch
Python-3.1.3-xcompile.patch
Python-3.2.2-xcompile.patch
然后执行以下代码打补丁:patch -p1 < Python-2.7.2-xcompile.patchStep4:配置安装文件并编译
分别执行以下代码:
其中--prefix选项中的路径是你要存储编译好的文件的路径,CC等选项是你用到的编译器。CC=arm-linux-gcc CXX=arm-linux-g++ AR=arm-linux-ar RANLIB=arm-linux-ranlib ./configure --host=arm-linux --build=x86_64-linux-gnu --prefix=/home/user/_install
然后执行这个命令,其中的setup.py是负责编译so文件的,我的PC上默认这个文件是不可执行的,但在编译Python时系统需要执行这个文件,所以你要给它加上可执行的条件。chmod 777 ./setup.py
这条命令中包含了开启设置解释器路径,选择编译器,开启交叉编译模式等选项。make HOSTPYTHON=./hostpython HOSTPGEN=./Parser/hostpgen BLDSHARED="arm-linux-gcc -shared" CROSS_COMPILE=arm-linux- CROSS_COMPILE_TARGET=yes HOSTARCH=arm-linux BUILDARCH=x86_64-linux-gnu
然后开始安装:
make install HOSTPYTHON=./hostpython BLDSHARED="arm-linux-gcc -shared" CROSS_COMPILE=arm-linux- CROSS_COMPILE_TARGET=yes prefix=/home/user/_install
这会安装到/home/user/_installStep5:复制到arm设备上并测试
把/home/user/_install下的文件复制到arm设备上,并吧Python添加到PATH中,然后执行测试:python lib/python-2.7/test/test___all__.py
然后期待着所有测试都通过吧!
相关文章推荐
- ubuntu14.04交叉编译移植python2.7.3
- Ubuntu14.04 交叉编译busybox给 Android系统ARM目标板
- ubuntu14.04交叉编译vlc2.1.5源码,编译出在win32下运行的程序
- Ubuntu14.04交叉编译Linux内核
- Ubuntu14.04交叉编译i2c-tools
- win7 安装ubuntu14.04 双系统 加hisi3531 交叉编译移植
- ubuntu14.04交叉编译vlc2.1.5源码,编译出在win32下运行的程序
- 64位的ubuntu14.04 LTS安装 Linux交叉编译工具链及32位“ia32-libs”依赖库
- 创建编译运行MapReduce程序(Eclipse+Ubuntu14.04+Hadoop2.7.2)
- Ubuntu14.04 Opencv2.4.9交叉编译
- Ubuntu 14.04 arm-2009q3交叉编译工具链的安装及使用
- Ubuntu14.04 安装交叉编译工具链 为所有用户增加路径的配置
- Ubuntu 14.04 64位 嵌入式交叉编译环境arm-linux-gcc搭建 一次成功
- Ubuntu server 14.04 交叉编译Unicorn-engine
- Android系统编译环境搭建—Ubuntu14.04安装&root登录&Chromium root启动&安装配置交叉编译环境
- 如何在Ubuntu14.04+上编译同时支持python2和python3的vim?
- ubuntu14.04交叉编译ffmpeg出现unable to create an executable file. C compiler test failed.
- ubuntu 14.04 安装交叉编译工具链arm-none-linux-gnueabi
- ubuntu14.04系统下mips交叉编译环境搭建
- 64位Ubuntu 14.04上使用musleabi最小化交叉编译Android版PHP7