超详细安装并打包arm架构下的python

由于打工那边的电脑是ARM架构的银河麒麟(也是个Linux)而且不能联网,我这边的电脑又是AMD架构的Windows系统。我要给他们配置python,看了许多文章并且问了许多AI,这篇文章我就说一下最舒服的方法吧。

一.安装最新版Docker Desktop

首先,我们要使用Docker Desktop,你只管下载最新版(4.x及以上这样才支持多架构模拟)、安装,不用害怕不会用他,用这个工具我们就能在我们AMD的电脑上模拟ARM的系统了。

这就是下载好的Docker了。

二.启用启用 QEMU 模拟支持

桌面shift+右键打开powershell

 输入:

docker run --rm --privileged multiarch/qemu-user-static --reset -p yes

三.拉取一个ARM镜像并运行

我们知道银河麒麟v4和v10都是基于Ubuntu,因此直接拉取一个arm64架构的Ubuntu镜像:

docker run --rm -it --platform linux/arm64 ubuntu bash

这里我们来详细看看这个命令。

docker run就表示要启动一个容器来运行一个镜像;

--rm表示你退出这个容器时,你就删除这个容器了,白玩了;

-it表示你可以在这个容器里操作(安装东西什么的);

--platform linux/arm64表示使用 ARM64位 架构模拟运行,这很关键;

 ubuntu bash表示我们拉取的镜像,拉一次就有缓存了,下一次再开一个容器他就不再拉取直接使用了。

怎么退出这个容器呢?输入exit或者直接ctrl+D。

如果你不想退出后这个容器就没了,就白玩了,那你就别加--rm,而且给这个容器取个名字,比如我就叫myarm:

docker run -it --platform linux/arm64 --name myarm ubuntu bash

--name表示他是有名字的,名字就是后面这个myarm,有名字还方便我们后续的操作

这样,你下次还想进入这个容器,你直接:

docker start -ai myarm

(其他的Docker操作就不过多赘述,你甚至可以直接再Docker Desktop中进行容器的停止和删除)

 四.python的安装

现在,我们就进入到ARM64的Ubuntu之中了。

 你可以输入:

uname -m

来看看是否是arm64架构的,aarch64就是对的。

1.下载python源码

在我们的宿主机(也就是Windows)上,下载python源码,我就搞个python3.8.10给大家看看。

别选错了嗷,另一个我也不知道是啥。

2.将python源码移动到ARM64容器中

新开一个powershell,右键桌面或者ctrl+x(前面有配图片),输入:

docker cp 'C:\Users\12230\Downloads\Python-3.8.10.tgz' myarm:/root

你注意,你这不能原封不动的抄过去,这里的‘C:\Users\12230\Downloads’是我自己的下载路径,你下载在哪你替换一下。

3.解压python源码

回到我们之前的那个powershell,也就是回到我们的arm64的Ubuntu中,这时候Python-3.8.10.tgz就出现在我们的root里了,我们可以ls看一下:

 没有问题,我这有Python-3.8.10,是因为我解压过了,你没解压要解压一下:

tar -zxvf Python-3.8.10.tgz

解压好你再ls一下,就是我那样了。

4.准备编译环境

为啥不直接在对方那里做我上面的事情呢?就是因为编译环境不好搞,因此我们在联网的环境下把编译环境搞好,然后再在这个环境下把python编译好,直接拿过去就好了。

apt update
apt-get install build-essential zlib1g-dev libbz2-1.0 libssl-dev libncurses5-dev libsqlite3-dev libreadline-dev tk-dev libgdbm-dev libdb5.3 libpcap-dev xz-utils libexpat1-dev liblzma-dev libssl-dev openssl libffi-dev libc6-dev

为啥不需要sudo?因为通过这种方法你不需要sudo,你的权限已经够了。

5.编译python

一步步来,别着急,很慢,可以刷很久的短视频:

cd /root/Python-3.8.10
./configure --prefix=/opt/python3.8 --enable-optimizations
make -j $(nproc)
make altinstall

注意--prefix=/opt/python3.8是为了将这个python安装到/opt/python3.8,这样好打包带走,不然它默认安装到/usr/local里面,不好往外拿。

6.验证python

运行:

/opt/python3.8/bin/python3.8 --version

如果出现:

这样的版本号,就说明安装成功了。

7.安装第三方依赖库

比如numpy、matplotlib等:

/opt/python3.8/bin/python3.8 -m pip install numpy matplotlib

五.python的打包

cd /opt
tar czvf python3.8-portable.tar.gz python3.8

这样你就得到了可以在其他arm64架构下的基于Ubuntu的Linux操作系统中可以直接使用的python包。

想把他拿到你的宿主机(Windows)里面来?

打开一个新的powershell(讲过两次怎么开了):

docker cp myarm:/usr/local/python3.8-portable.tar.gz 'D:\Project'

后面这个路径就是你想要保存到宿主机(Windows)的路径,自己改就行。

这样你就把这个打包好的Python拿到你的宿主机(Windows)上了,把他拷到你要去的离线环境上,用就行了。

六.pyhton-protable的使用

拷到离线环境后,cd到这个包的路径,然后解压这个包:

cd /root
tar -xzf python3.8-portable.tar.gz

假设你拷到了/root中,这样操作即可。

然后:

/root/python3.8-portable/bin/python3.8 main.py

就可以运行你项目的main函数了。

如果觉得麻烦,可以联系我,我直接把我编译好的ARM64架构的Ubuntu操作系统的python3.8的压缩包发给你,但是里面只有numpy和matplotlib。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值