python3.4交叉編譯與移植__python

來源:互聯網
上載者:User

學習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


編譯成功,已經在目標板上驗證通過

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.