Ubuntu16.04将python移植到Android Studio
程序员文章站
2022-07-03 21:57:49
...
Ubuntu16.04将python代码移植到Android Studio
1.安装Python3.6环境:
这里使用的是3.6.0版本Python,若是其他版本,请自行到官网下载:
wget http://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
tar -xvzf Python-3.6.0.tgz
cd Python-3.6.0
./configure --with-ssl
make
sudo make install
注意:
--with-ssl必须加上,否则会出现pip升级不了,TSL证书问题,等等一系列问题,死循环
如果安装之后出现以下提示则是缺少依赖包:
zipimport.ZipImportError: can't decompress data; zlib not available
Makefile:1079: recipe for target 'install' failed
make: *** [install] Error 1
然后执行下面命令:
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm libncurses5-dev libncursesw5-dev xz-utils tk-dev
执行完毕后重新make install(不需要再执行./configure和make)
2.安装Python编译外部模块文件使用的Python-dev
sudo apt-get install python-dev
3.安装包管理PIP:
安装pip
sudo apt-get install python-pip
安装之后升级pip
sudo pip3 install --upgrade pip
如果在搞pip的过程中出现下面的问题:
Traceback (most recent call last):
File "/usr/bin/pip3", line 9, in <module>
from pip import main
ImportError: cannot import name 'main'
则使用以下命令解决:
sudo python3 -m pip uninstall pip && sudo apt install python3-pip –reinstall
4.系统安装python-dev和gcc
由于上述步骤中已经安装了python-dev,而Ubuntu虚拟机自带5.4版本的gcc,所以可以跳过此步骤
sudo apt-get install python-dev
如果出现以下错误,则说明已将安装过python-dev:
Unable to locate package python-devel
5.用Python安装cython
方式一,在第三方库找到你想要下载的库名字(有坑):
pip install Cython-0.26-cp36-cp36m-manylinux1_x84_64.whl
注意:
Python版本,电脑系统,电脑位数(x86_64是64位,i686是32位),例如我的是
Python3.6.0、Ubuntu16.04、64位,下载的是上面的那个
但是出现了以下错误:
ERROR:Cython-0.26-cp36-cp36m-manylinux1_x86_64.whl is not a supported wheel on this platform
之后用方式二安装发现安装的是:Cython-0.29.21-cp36-cp36m-manylinux1_i686.whl
方式二:
pip install cython
上述命令会根据你的情况自行下载
这里需要配置一下Python环境的优先级(数字越大级别越高):
sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 200
注: 第二个路径是python执行文件的位置,可能不在/usr/bin目录下,我的是在/usr/local/bin目录下
6.编译:
下载git:
sudo apt-get install git
下载编译脚本:
git clone https://github.com/ArvinMei/py2so
编译某个文件夹:
python py2so.py mydir_path
生成的文件在mydir_path/build文件夹下
验证:
在mydir_path/build/xxx 下使用ipython进入命令行引用包
后记
至此,Python 到Android的移植基本完成,只需要把编译好后的so文件放到Android中调用就可以实现Android中调用Python代码了,若有什么不足之处,还请指出,互相交流学习
参考:
https://blog.csdn.net/baoshuowl/article/details/80375343
https://github.com/ArvinMei/py2so
上一篇: typescript 基础类型
下一篇: TypeScript基础类型