ubuntu 20.04将Python3交叉编译移植到Android平台

最近想在Android环境中集成Python3,参考了一下网上的实现,发现已经有项目实现这个功能的,具体的编译过程参考下面:

$ sudo apt-get install make

# makeinfo工具,包编译时候需要
$ sudo apt-get install texinfo 
 
$ sudo apt-get install git

$ sudo apt-get install aria2

$ cd ~

$ aria2c -c https://dl.google.com/android/repository/android-ndk-r21b-linux-x86_64.zip

$ unzip android-ndk-r21b-linux-x86_64.zip

# 安装pyenv,配置python 3.6.6 编译的是这个版本,需要安装这个版本的python,其他版本的Python编译会失败
$ git clone https://github.com/pyenv/pyenv.git

$ cd pyenv

$ make

$ cd bin

$ sudo apt-get install openssl

$ sudo apt-get install libssl-dev

$ sudo apt-get install libbz2-dev

$ sudo apt-get install libreadline-dev

$ sudo apt-get install sqlite3

$ sudo apt-get install libsqlite3-dev

# for scikit-learn
$ sudo apt-get install python-numpy

$ sudo pip2 install --upgrade pip

$ sudo apt-get install cython

$ ./pyenv install 3.6.6

# 全局设置版本 
$ ./pyenv global 3.6.6

$ eval "$(./pyenv init -)" 

$ cd ~

$ git clone https://github.com/qpython-android/qpython3-toolchain.git

$ cd qpython3-toolchain

$ sed -i 's/PYTHON?=python/PYTHON?=python3/g' Makefile

$ export ANDROID_NDK=~/android-ndk-r21b

# for python2
$ export CLANG_FLAGS_BASE=

# for pycryptodome
$ export PY_BRANCH=3

$ export PY_M_BRANCH=6m

# 目标编译代码为 aarch64
$ export TARGET_ARCH_ANDROID=aarch64

$ export TARGET_ARCH_NAME=android

$ export ANDROID_VER=29

$ make clean

$ make

# 目前 scikit-learn 部分还是编译不通过

参考链接


发布者

《ubuntu 20.04将Python3交叉编译移植到Android平台》上有2条评论

回复 CatTalk 取消回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注