麒麟(aarch64)离线部署python程序(3.8.10)

0、需求:在windows x86_64电脑上使用python3.8.10开发的程序,需要离线部署到国产化麒麟ARM服务器(类似Centos aarch64)。

1、离线下载依赖,拷贝至服务器

pip download -d ./package_arm -r requirements.txt --only-binary=:all: --platform manylinux2014_aarch64 --python-version 3.8 -i https://pypi.tuna.tsinghua.edu.cn/simple

离线下载并不能解决所有依赖包的下载问题,有些包由于命名方式特殊,只能通过人工筛选去下载,版本参考win_x86_64环境下的版本号。

2、安装服务器依赖

yum install make automake gcc gcc-c++ kernel-devel 
yum install zlib-devel 
yum install ncurses-libs ncurses-devel
yum install openssl-devel
yum install readline-devel
yum install libffi libffi-devel -y
yum install lzma
yum -y install xz-devel
yum install bzip2.aarch64

3、官网下载Python-3.8.10.tar.xz,或从百度网盘下载

通过网盘分享的文件:Python-3.8.10.tar.xz
链接: https://pan.baidu.com/s/1XZL_LAKWkeWDy22GxXM3KA?pwd=gzjy 提取码: gzjy 
--来自百度网盘超级会员v7的分享

4、拷贝至服务器并解压,进入解压目录

tar -xvf Python-3.8.10.tar.xz
cd Python-3.8.10

5、编译安装

./configure --enable-optimizations
make
make install

6、版本测试

python3 -V

7、安装依赖

pip3 install --no-index --find-links=/whlpath -r /projectpath/requirements.txt

8、检查是否缺少bz包,如缺少,按以下方式处理

cd /usr/local/lib/python3.8/lib-dynload/
find -name _bz2.cpython-38-x86_64-linux-gnu.so

找到容器中原有Python3对应的bzip2 的 .so 文件_bz2.cpython-36m-aarch64-linux-linux-gnu.so,我的是在3.6环境下安装的因此位置在 /usr/lib/python3.6/lib-dynload/ 下,将对应的 .so 文件 复制python3.8 对应的目录下(我的是/usr/local/lib/python3.8/lib-dynload/ 需要根据你自己安装的位置寻找)

此处提供可直接下载:

通过网盘分享的文件:_bz2.cpython-312m-aarch64-linux-gnu.so
链接: https://pan.baidu.com/s/1Q_ObUh2Pam4b3yq-MIeJPQ?pwd=dq8h 提取码: dq8h 
--来自百度网盘超级会员v7的分享

并将文件名中“36m” 修改为 “38” 即可。

tips:(find命令) find (目录起点) -name 加上文件名 查找文件比较快

可以使用whereis python3 来找到系统默认的python 环境的位置。

posted @ 2025-03-04 09:48  金元宝骑骑  阅读(1721)  评论(0)    收藏  举报