1. 程式人生 > >python移植到arm平臺

python移植到arm平臺

主要參考了兩篇博文:http://randomsplat.com/id5-cross-compiling-python-for-embedded-linux.htmlhttp://wiki.woodpecker.org.cn/moin/LeoJay/HOWTOCrossCompilePythonForARM

1.  交叉編譯Python

  見Cross Compiling Python for Embedded Linux

複製程式碼

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=/root/tftpboot/Python-2.7.3

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=/root/tftpboot/Python-2.7.3

複製程式碼

2. PC與開發板檔案傳輸

  tftp: tftp -l path/to/filename -r filename -g 192.168.*.*

3. 檔案拷貝

  •   cp /your/path/bin/python2.7 /bin/python     

  or  export PATH=/your/path/bin/:$PATH   # OK210開發板會報錯

  •        拷貝serial、django等python庫拷貝到/lib/python2.7/site-packages/目錄下。

4. 設定Python相關環境變數

  以Python2.7.x為例。

export PYTHONHOME=/your/path/
#export PYTHONPATH=$PYTHONHOME:$PYTHONHOME/lib/python2.7:$PYTHONHOME/lib:$PYTHONHOME/lib/python2.7/site-packages
#export PATH=$PATH:$PYTHONHOME:$PYTHONPATH

5. sqlite3

1

2

3

4

5

6

7

8

9

10

11

12

13

Building SQLLite 

and other dependancies

 

Thanks to Lothsahn’s 2.7.3 patch, it is now possible to build sqlite3, bz2, gz, ssl and ctypes.  Lothsahn provides the following instructions:

 

To do the compilation, the dependencies must be in the include and lib folder one path up from the python install.   For example:

 

<base directory>/include <– header files go here

 

<base directory>/lib <– shared object files go here

 

/Python-2.7.3 <—Python sources go here during compile

 

Dependencies include libffi, sqlite, openssl, bzip2, zlib, etc.

1. 按照上面Paul Gibson給的Cross Compiling Python for Embedded Linux , 但是import sqlite3會報錯,原因暫不明。

試了一些解決辦法,嘗試未果,可能是lib_dir路徑問題:

  •   Removing other search paths from the setup.py, but the one i had the ARM compiled library in, made it work. 測試也未通過。

http://stackoverflow.com/questions/12385634/shared-library-sqlite3-so-not-found-when-importing-sqlite3-on-python-2-6-6

3. debian平臺成功。 http://www.friendlyarm.net/forum/topic/2731

參考:

1. cross compile python, busybox, flex, bash and so on, ARM cross-compiling howto

2. 網上一個給力的例子,python-2.6.6:

Click and run python cross compiling for Embedded ARM Linux

3. 在友善之臂Linux系統中使用python http://112.124.9.243/?p=285

4. 移植python3到ARM平臺的OK6410開發板http://www.51bigfool.com/%E7%A7%BB%E6%A4%8Dpython3%E5%88%B0arm%E5%B9%B3%E5%8F%B0%E7%9A%84ok6410%E5%BC%80%E5%8F%91%E6%9D%BF.html

附:

  •  用strip處理過後,將去掉其中的除錯資訊,執行檔案大小也將小很多。命令如下:

    # arm-linux-strip  file

    其中file是用arm-liunux-gcc編譯生成的二進位制檔案。

  •    ./configure --host=arm-linux CC=arm-linux-gcc AR=arm-linux-ar STRIP=arm-linux-strip RANLIB=arm-linux-ranlib
  •    sqlite3的交叉編譯
    •   # CC=arm-linux-gcc ./configure --prefix=/your/path/sqlite-3.7.14 --host=arm-linux --disable-tcl

        #make && make install

分類: Python

標籤: python

相關推薦

python移植arm平臺

主要參考了兩篇博文:http://randomsplat.com/id5-cross-compiling-python-for-e

Beego+go-sqlite3 Arm平臺移植遇到的問題

交叉 提示 found win beego windows 平臺移植 linux lin 在windows下使用Beego+go-sqlite3進行簡單博客開發, 但編譯後將其植入Arm平臺下運行異常:編譯參數設置: SET GOARCH=armSET GOOS=linux

ARM平臺上藍芽協議棧Bluez的移植使用和配置(寫的狠不錯) .

目錄(?)[-] 相關說明 網站資源 工作環境 編譯 核心 Bluez Lib / Utils 藍芽硬體初始化及基礎服務啟動 何謂硬體初始化 硬體初始化步驟

[Linux] ARM平臺移植通常依賴的庫

ARM-Linux平臺移植通常依賴的庫 sudo apt-get install make sudo apt-get install gcc-arm-linux-gnueabi(按實際情況選擇安裝) sudo apt-get install g++ sudo a

python移植arm的單板

python移植到arm的單板 2017年09月22日 09:05:55 mania_yan 閱讀數:3068 注:下文的CSU是我們一個嵌入式單板的名稱。 1 前言 作者的話: 本人非常喜歡python,一直夢想可以移植到CSU中。但是python誕生之初並沒有想到要

移植ethtool到arm平臺

轉載地址:https://blog.csdn.net/crazycoder8848/article/details/44278791 轉載地址:https://blog.csdn.net/vc66vcc/article/details/52398864 首先下載ethtool的原始碼包。

ARM平臺移植 openssl-1.1.1

openssl   新版本 config 變化較大 openssl-OpenSSL_1_1_1-stable.zip ./config no-asm shared --prefix=/home/H1Ne shared no-asm  在交叉編譯過程中不使

ubuntu16.04 ARM平臺移植xmlrpc-c

1. xmlrpc-c依賴與libcurl 參考另外一篇隨筆:https://www.cnblogs.com/flyinggod/p/10148228.html 2. 下載原始碼 http://xmlrpc-c.sourceforge.net/ 3. 編譯程式碼 ./configure

live555本機和arm平臺移植

本文講解在PC和arm平臺上進行live555的移植,目標平臺使用全志A20。 1、原始碼下載       可以登陸live555的官網獲取live555最新版原始碼,也可從下面這個地址獲取到本文移植所使用的原始碼: 2、編譯   (1)PC編譯       解壓原始

ARM平臺上藍芽協議棧Bluez的移植使用和配置

作者:劉旭暉 Raymond轉載請註明出處 主頁:http://rgbbones.googlepages.com/ Bluez作為當前最成熟的開源藍芽協議棧,在Linux的各大發行版中已

ARM平臺移植libcurl curl-7.49.0

編譯test例項 https://curl.haxx.se/libcurl/c/example.html An example source code that issues a HTTP POST and we provide the actual data through a read cal

valgrind的arm平臺移植

wget ftp://sourceware.org/pub/valgrind/valgrind-3.13.0.tar.bz2 因為我的glib比較新,所以valgrind原始碼下了個當前的最新版本,否則編譯的時候會提示不支援 tar xvf valgrind-3.13.0

geos庫交叉編譯生成ARM平臺

linux linu b2c com ron exec 平臺 data get 版本號信息: GEOS:geos-3.4.2.tar.bz2(http://trac.osgeo.org/geos/) CPU:ARM 編譯器:arm-linux 4.2.2

安裝 Python(Linux 平臺

edi color class nbsp more right n-2 inux type Linux 默認已經安裝 Python [[email protected]/* */ ~]# rpm -q python # 查看是否安裝 python-

安裝 Python(Windows 平臺

系統 target 成功 org win http 屬性 msi 軟件包 1、下載 python 軟件包 :https://www.python.org/ftp/python/2.7.13/python-2.7.13.amd64.msi 2、安裝 python :保持默認

[Python]獲取win平臺文件的詳細信息

python __main__ rfi urn leo ever rip {} pen import win32api def getFileProperties(fname): """ 讀取給定文件的所有屬性, 返回一個字典. """

ARM平臺NEON優化學習參考

快速查找 技巧 nec 匯編代碼 除法 int csdn dev vision 筆者在日前工作當中接觸了NEON優化等內容,現將網絡上搜集到的資料整理如下,以供參考。如有侵權,盡請告知,即刻刪除。 1.官方鏈接 NEON指令官方文檔:http://infocenter.ar

[轉]ARM平臺下獨占訪問指令LDREX和STREX

64 bit line 更改 鎖定 term 技術 .net 再處理 b2c 參考:ARM平臺下獨占訪問指令LDREX和STREX的原理與使用詳解 全文轉載如下: 為了實現線程間同步,一般都要在執行關鍵代碼段之前加互斥(Mutex)鎖,且在執行完關鍵代碼段之後解鎖。為了實現

SylixOS ARM平臺下的內存對齊訪問

硬件 一個 空間 不同 我們 宏定義 順序 ifdef 32位 1.內存對齊1.1 內存對齊概要現代計算機中內存空間都是按照byte劃分的,從理論上講對任何類型的變量的訪問可以從任何地址開始,但實際情況是在訪問特定變量的時候經常在特定的內存地址訪問,這就需要各類型數

基於python自動化測試平臺與虛擬化技術結合的思考

主力 根據 測試 導致 文件掛載 配置 存在 自動化 作用 背景: 自動化測試行業內,個人覺得主力語言是python、java。這裏討論下基於python自動化框架設計與case開發,用過python的都知道它的好處,但是根據實際項目需要有了很多迎面而來的困難--主機遷