提示:之前的文章是在ubuntu18.04环境下实现了对于python代码的打包,确实对于现场部署不能连接网络的情形带了便利。例如避免不用重新配置环境以及配置环境版本等对运行结果影响的问题。但这次同事反馈对面的服务器采用的是aarch64内核架构,之前项目组打包采用的华为云服务器是x86架构,也是之前忽略的一个问题。
提示:本文主要记录Linux-aarch64架构环境下部署python项目详细,有相关需求的可以有所参考,由于采用版本以及具体环境的不同,方案可能会有所偏差:
提示:以下是本篇文章正文内容,下面部署案例可供参考
示例:由于这次案例的服务器是临时租用的huiwei服务器为了满足部署需求,采用Linux-aarch64架构,安装了ubuntu18.04的操作系统。采用Putty进行服务器连接,同时采用Xftp软件进行相关代码以及文件的传输,对于采用后台命令的操作还是要方便一点。
创建一个环境(如果代码或者项目较大,建议建立一个docker,把环境安装进去,方便打包docker)
安装anconda,我采用的安装包为:
Archiconda3-0.2.3-Linux-aarch64.sh
我是下载后上传到自建的文件夹中,
cd命令打开文件夹 输出指令
bash Archiconda3-0.2.3-Linux-aarch64.sh
具体安装步骤可以参考这几个哥们的博客:
https://blog.csdn.net/June19/article/details/115731904
https://blog.csdn.net/ychgyyn/article/details/82258136
创建python环境:
其实 对于arm64内核 基本的库都还可以 就是tensorflow的库稍微麻烦一点 不过这次案例中也有很多大型库没有踩坑比如cv 等
不建议建立环境时候上来选择python高级版本 有些包可能在conda中不好安装 采用的py3.6版本
conda create –n py3.6 python==3.6 #创建名字为py3.6的环境
conda activate py3.6
## 2.安装一些包
conda install matplotlib
conda install numpy
conda install pandas
.....
##3.如果安装速度较慢可以考虑八conda 的源加上国内源 对于x86架构 是很友好的 比较推荐中科大源
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/main/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/conda-forge/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/bioconda/
conda config --add channels https://mirrors.ustc.edu.cn/anaconda/cloud/menpo/
conda config --set show_channel_urls yes
## 2.测试代码
采用命令窗口打开代码所在的文件夹 (代码可以用Xftp上传到文件夹)调用指令进行运行,并在文件夹中检查运行结果是否正确:
例如 : 我的代码上传到文件夹/home/usr/TEST
代码名字为:datato.py
代码如下:
```c
cd /home/usr/TEST
conda activate py3.6
python datato.py
没有报错 在文件中显示了运行结果 ok
tensorflow 2.x版本的安装着实不易
1)安装了python后 建议在命令窗口输入:python
2)输入指令:
import wheel.pep425tags as w
print(w.get_supported())
3)显示结果:
[(‘cp37’, ‘cp37m’, ‘linux_aarch64’), (‘cp37’, ‘abi3’, ‘linux_aarch64’), (‘cp37’, ‘none’, ‘linux_aarch64’), (‘cp’), (‘cp34’, ‘abi3’, ‘linux_aarch64’), (‘cp33’, ‘abi3’, ‘linux_aarch64’), (‘cp32’, ‘abi3’, ‘linux_aarch64’), (’, ‘any’), (‘cp35’, ‘none’, ‘any’), (‘cp34’, ‘none’, ‘any’), (‘cp33’, ‘none’, ‘any’), (‘cp32’, ‘none’, ‘any’), (’, ‘linux_aarch64’), (‘py37’, ‘none’, ‘any’), (‘py3’, ‘none’, ‘any’), (‘py36’, ‘none’, ‘any’), (‘py35’, ‘none’,y32’, ‘none’, ‘any’), (‘py31’, ‘none’, ‘any’), (‘py30’, ‘none’, ‘any’)]
4)安装tensorflow
方案一:到github上下载.whl 文件 部分架构对于tensorflow2.1-2.4 版本不够友好
网址:https://github.com/lhelontra/tensorflow-on-arm/releases
对于显示结果以及安装python版本 可以选择:
tensorflow-2.1.0-cp35-none-linux_aarch64.whl
tensorflow-2.3.0-cp35-none-linux_aarch64.whl
剩下 完成安装就好 若在conda环境中不支持
参考博客:
https://blog.csdn.net/xiangfengl/article/details/118219637
https://blog.csdn.net/qq_33513098/article/details/81150513
https://blog.csdn.net/m0_37967248/article/details/114639339
方案二:
建议将中科大源添加到conda
采用 conda install tensorflow 进行安装 我装出了一个2.5.0的版本 但是之前代码的sklearn中的库有所冲突,经过将numpy与pandas以及sklearn重装后解决
这个方案也是对于项目部署过程中一点经验总结,当然抽时间写难免也会有梳理和不完善,也是总结和一点经验参考了。