ARM架构离线Python环境部署
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.shpy312_env.tar.gzoffline_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 (...)
注意事项
- 架构一致性:
- 所有操作需在ARM架构(aarch64)机器上执行
- 确保联网机和离线机架构相同
- 平台标识说明:
manylinux2014_aarch64:ARM架构标准平台标签- 勿使用x86_64标识(会导致兼容性问题)
- 权限管理:
- 建议使用root权限操作,避免权限问题
- 环境默认安装在
/root/miniconda3
- 版本匹配:
- Python版本需与下载时指定的版本严格一致
- 确保requirements.txt包含完整依赖
ARM架构离线Python环境部署的更多相关文章
- 1-编程基础及Python环境部署
目录 1 编程基础 1.1 基本概念 1.2 语言分类 1.3 高级语言的发展 2 程序 3 python的语言介绍 4 Python的解释器 5 Python版本区别 6 Python安装 6.1 ...
- Arm架构下VUE环境的安装
最近因为项目需要在arm环境下搭建vue环境,网上有基于Linux的 教程,路径略有不同,现整理如下 1.安装文件下载 1.下载地址:http://nodejs.cn/download/ 2.选择一个 ...
- 在doker上的python安装及环境部署
python环境部署 我们今天学习的内容是如何将Django项目部署到linux服务器上,我们部署的linux系统是centos7首先,我们先在linux上搭建我们的Python3环境: 在这里首先强 ...
- ARM架构下的Docker环境,OpenJDK官方没有8版本镜像,如何完美解决?
为什么需要ARM架构下的OpenJDK8的Docker镜像? 对现有的Java应用,之前一直运行在x86处理器环境下,编译和运行都是JDK8,如今在树莓派的Docker环境运行(或者其他ARM架构电脑 ...
- 白手起家Django项目发布中篇_Centos下Python2和3并存环境部署
python环境部署 我们今天学习的内容是如何将Django项目部署到linux服务器上,我们部署的linux系统是centos7首先,我们先在linux上搭建我们的Python3环境: 在这里首先强 ...
- 离线环境下自动化部署python环境(含openssl)
遇到有项目要在内网环境下安装python项目,所以空余时写了自动化部署python环境和python项目的脚本,由于项目涉密,这里仅提供自动化部署python环境的shell脚本,包括openssl的 ...
- 微服务架构 - 离线部署k8s平台并部署测试实例
一般在公司部署或者真实环境部署k8s平台,很有可能是内网环境,也即意味着是无法连接互联网的环境,这时就需要离线部署k8s平台.在此整理离线部署k8s的步骤,分享给大家,有什么不足之处,欢迎指正. 1. ...
- CentOS 5系统安装Django、Apache 、mod_wsgi部署Python环境教程
Django,是一款针对Python环境的WEB开发框架,能够帮助我们构架快捷.简单的WEB框架设置,Django框架非常适合开发内容应用环境,所以在本文中,麦子将整理基于Centos系统部署安装Dj ...
- Python简介及环境部署
Python的由来: Python的创始人:Guido van Rossum Guido 在1989年12月时,寻找一门“课余”编程项目来打发圣诞节前后的时间.Guido决定为当时正构 ...
- 西秦的ACE-Python教程 一、Python本地开发环境部署
西秦的ACE-Python教程 一.Python本地开发环境部署 西秦 级别: 论坛版主 发帖 1357 云币 2782 加关注 写私信 只看楼主 更多操作楼主 发表于: 10-10 ...
随机推荐
- Win32汇编学习笔记06.APIHook
Win32汇编学习笔记06.APIHook-C/C++基础-断点社区-专业的老牌游戏安全技术交流社区 - BpSend.net api hook 称为 api 钩子,也称为 内联apihook 我们程 ...
- Java HashMap和 ConcurrentHashMap 热门面试题
目录 在日常开发中使用过的java集合类有哪些 谈一下HashMap的特性 HashMap 的数据结构是什么 单链表和红黑树相互转换的条件是什么 链表和红黑树相互转换的阈值为什么是 8 和 6 为什么 ...
- @Transactional嵌套事务失效异常Transaction rolled back because it has been marked as rollback-only
摘要:注解@Transactional嵌套事务失效,抛出异常ransaction rolled back because it has been marked as rollback-only,解决办 ...
- Python中的cls变量
技术背景 在Python的类型设计中,有时候会遇到一个cls参数.其实cls参数就是一个约定俗成的名称,用其他的名字也能正常运行但不建议这么用.它的作用类似于实例方法中的self参数,代表的是类本身, ...
- 【Zookeeper从入门到实战】SpringBoot整合完整指南
Zookeeper从入门到实战:SpringBoot整合完整指南 一.Zookeeper概述 1.1 什么是Zookeeper Zookeeper是一个开源的分布式协调服务,由Apache软件基金会维 ...
- Ceph对象存储集群常用操作
一.常用操作 1.1 查看某个bucket详情 # 查看bucket列表 [root@oss001 ~]# radosgw-admin bucket list [ "awss3e68c588 ...
- IDEA使用技巧以及常用快捷键
Ctrl+N按名字搜索类 Ctrl+Shift+N按文件名搜索文件 Alt+F7查找类或方法在哪被使用: Ctrl+F/Ctrl+Shift+F按照文本的内容查找 : Ctrl+F是在本页查找,Ctr ...
- C++ set/multiset容器 学习总结
-------------------------------------set/multiset容器 set/multiset特性 set/multiset的特性是所有元素会根据元素的值自动进行排序 ...
- net core api 跨域 Cors 找不到 “Access-Control-Allow-Origin”
public static void AddCorsSetup(this IServiceCollection services) { services.AddCors(c => { //允许任 ...
- MySQL 09 普通索引和唯一索引,应该怎么选择?
唯一索引:字段值不能重复. 普通索引:字段值可以重复. 假设数据如下图,且字段k上的值都不重复: 接下来,从两种索引对查询语句和更新语句的性能影响来分析. 查询过程 假设查询语句为select id ...