ARM架构离线Python环境部署指南

一、联网ARM机器环境准备

1. 安装Miniconda3

# 切换root管理员
su - root # 下载ARM架构的Miniconda安装包
wget https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-aarch64.sh # 执行自动安装(默认安装到/root/miniconda3)
bash Miniconda3-latest-Linux-aarch64.sh ## bash Miniconda3-latest-Linux-aarch64.sh -b -p /opt/miniconda3 # -b 静默安装 -p 指定安装路径 # 安装成功执行
source ~/.bashrc # echo 'export PATH="/opt/miniconda3/bin:$PATH"' >> ~/.bashrc
# source ~/.bashrc

2. 接受服务条款

conda tos accept --override-channels --channel "https://repo.anaconda.com/pkgs/r"
conda tos accept --override-channels --channel "https://repo.anaconda.com/pkgs/main"
conda tos accept --override-channels --channel "https://repo.anaconda.com/pkgs/msys2"

3. 创建Python环境

# 使用conda-forge频道创建Python 3.12.1环境
conda create -n py312 -c conda-forge python=3.12.1 -y # 可指定目录
conda create -p /opt/miniconda3/envs/py312 -c conda-forge python=3.12.1 -y # 激活虚拟环境
conda activate py312 # 安装环境依赖包(python程序所需要的依赖包)
pip install -r requirements.txt # 退出虚拟环境
conda deactivate py312

环境打包操作

1. 确认环境路径

conda info --envs
# 输出示例:/root/miniconda3/envs/py312

2. 生成依赖清单

pip freeze > requirements.txt    #导出pip安装的依赖包

3. 下载离线依赖包

# 创建离线包目录
mkdir offline_packages # 下载ARM架构的二进制包(注意平台标识)
pip download -r requirements.txt -d offline_packages \
--platform manylinux2014_aarch64 \ # ARM架构平台标识
--python-version 3.12 \ # Python版本
--only-binary=:all: # 仅下载二进制包

4. 打包环境目录

tar -czvf py312_env.tar.gz -C /root/miniconda3/envs/ py312

5. 准备离线文件包

需复制以下文件到离线机器:

  • Miniconda3-latest-Linux-aarch64.sh
  • py312_env.tar.gz
  • offline_packages 目录
  • requirements.txt

二、离线ARM机器环境部署

1. 安装Miniconda3

# 切换root
su - root # 执行安装脚本
bash Miniconda3-latest-Linux-aarch64.sh # 激活环境变量
source ~/.bashrc

2. 恢复Python环境

# 解压环境包到conda目录
tar -xzf py312_env.tar.gz -C /root/miniconda3/envs # 激活环境
conda activate py312

3. 离线安装依赖

pip install --no-index --find-links=./offline_packages -r requirements.txt

4. 验证环境

python -c "import sys; print(sys.platform, sys.version)"
# 应输出:linux 3.12.1 (...)

注意事项

  1. 架构一致性
  • 所有操作需在ARM架构(aarch64)机器上执行
  • 确保联网机和离线机架构相同
  1. 平台标识说明:
  • manylinux2014_aarch64:ARM架构标准平台标签
  • 勿使用x86_64标识(会导致兼容性问题)
  1. 权限管理:
  • 建议使用root权限操作,避免权限问题
  • 环境默认安装在/root/miniconda3
  1. 版本匹配:
  • Python版本需与下载时指定的版本严格一致
  • 确保requirements.txt包含完整依赖

ARM架构离线Python环境部署的更多相关文章

  1. 1-编程基础及Python环境部署

    目录 1 编程基础 1.1 基本概念 1.2 语言分类 1.3 高级语言的发展 2 程序 3 python的语言介绍 4 Python的解释器 5 Python版本区别 6 Python安装 6.1 ...

  2. Arm架构下VUE环境的安装

    最近因为项目需要在arm环境下搭建vue环境,网上有基于Linux的 教程,路径略有不同,现整理如下 1.安装文件下载 1.下载地址:http://nodejs.cn/download/ 2.选择一个 ...

  3. 在doker上的python安装及环境部署

    python环境部署 我们今天学习的内容是如何将Django项目部署到linux服务器上,我们部署的linux系统是centos7首先,我们先在linux上搭建我们的Python3环境: 在这里首先强 ...

  4. ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?

    为什么需要ARM架构下的OpenJDK8的Docker镜像? 对现有的Java应用,之前一直运行在x86处理器环境下,编译和运行都是JDK8,如今在树莓派的Docker环境运行(或者其他ARM架构电脑 ...

  5. 白手起家Django项目发布中篇_Centos下Python2和3并存环境部署

    python环境部署 我们今天学习的内容是如何将Django项目部署到linux服务器上,我们部署的linux系统是centos7首先,我们先在linux上搭建我们的Python3环境: 在这里首先强 ...

  6. 离线环境下自动化部署python环境(含openssl)

    遇到有项目要在内网环境下安装python项目,所以空余时写了自动化部署python环境和python项目的脚本,由于项目涉密,这里仅提供自动化部署python环境的shell脚本,包括openssl的 ...

  7. 微服务架构 - 离线部署k8s平台并部署测试实例

    一般在公司部署或者真实环境部署k8s平台,很有可能是内网环境,也即意味着是无法连接互联网的环境,这时就需要离线部署k8s平台.在此整理离线部署k8s的步骤,分享给大家,有什么不足之处,欢迎指正. 1. ...

  8. CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程

    Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...

  9. Python简介及环境部署

    Python的由来:         Python的创始人:Guido van Rossum Guido 在1989年12月时,寻找一门“课余”编程项目来打发圣诞节前后的时间.Guido决定为当时正构 ...

  10. 西秦的ACE-Python教程 一、Python本地开发环境部署

    西秦的ACE-Python教程 一.Python本地开发环境部署       西秦 级别: 论坛版主 发帖 1357 云币 2782 加关注 写私信   只看楼主 更多操作楼主  发表于: 10-10 ...

随机推荐

  1. Win32汇编学习笔记06.APIHook

    Win32汇编学习笔记06.APIHook-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net api hook 称为 api 钩子,也称为 内联apihook 我们程 ...

  2. Java HashMap和 ConcurrentHashMap 热门面试题

    目录 在日常开发中使用过的java集合类有哪些 谈一下HashMap的特性 HashMap 的数据结构是什么 单链表和红黑树相互转换的条件是什么 链表和红黑树相互转换的阈值为什么是 8 和 6 为什么 ...

  3. @Transactional嵌套事务失效异常Transaction rolled back because it has been marked as rollback-only

    摘要:注解@Transactional嵌套事务失效,抛出异常ransaction rolled back because it has been marked as rollback-only,解决办 ...

  4. Python中的cls变量

    技术背景 在Python的类型设计中,有时候会遇到一个cls参数.其实cls参数就是一个约定俗成的名称,用其他的名字也能正常运行但不建议这么用.它的作用类似于实例方法中的self参数,代表的是类本身, ...

  5. 【Zookeeper从入门到实战】SpringBoot整合完整指南

    Zookeeper从入门到实战:SpringBoot整合完整指南 一.Zookeeper概述 1.1 什么是Zookeeper Zookeeper是一个开源的分布式协调服务,由Apache软件基金会维 ...

  6. Ceph对象存储集群常用操作

    一.常用操作 1.1 查看某个bucket详情 # 查看bucket列表 [root@oss001 ~]# radosgw-admin bucket list [ "awss3e68c588 ...

  7. IDEA使用技巧以及常用快捷键

    Ctrl+N按名字搜索类 Ctrl+Shift+N按文件名搜索文件 Alt+F7查找类或方法在哪被使用: Ctrl+F/Ctrl+Shift+F按照文本的内容查找 : Ctrl+F是在本页查找,Ctr ...

  8. C++ set/multiset容器 学习总结

    -------------------------------------set/multiset容器 set/multiset特性 set/multiset的特性是所有元素会根据元素的值自动进行排序 ...

  9. net core api 跨域 Cors 找不到 “Access-Control-Allow-Origin”

    public static void AddCorsSetup(this IServiceCollection services) { services.AddCors(c => { //允许任 ...

  10. MySQL 09 普通索引和唯一索引,应该怎么选择?

    唯一索引:字段值不能重复. 普通索引:字段值可以重复. 假设数据如下图,且字段k上的值都不重复: 接下来,从两种索引对查询语句和更新语句的性能影响来分析. 查询过程 假设查询语句为select id ...