离线无网络环境下配置Python/Anaconda环境踩过的坑

一、前言

        如果你同样需要在无网络环境下安装Python环境,这篇博客是一个很好的参考,由于内网没有网络,因此不能使用conda install/pip install等在线下载安装方式,经过个人尝试,推荐以下两种方法。

二、离线安装python库

        如果需要安装的环境比较简单,可以将所需要的xxx.whl安装包提前在有网的环境下载好后,再在内网服务器上安装,需要注意的是包的版本很重要,如果不确定目标系统环境能否兼容,可以多下载几个版本的包。但是实际情况中,一个库依赖着另一个库,属于是层层套娃,怎样才能一次找到并下好所有的依赖库呢?

1、利用pip找到所有依赖库

        利用pip show命令可以查看依赖包的信息及其依赖库,以安装pytorch_lightning为例,先查看其所需要的依赖库:

再依次搜索依赖库的依赖库,由上往下搜索:

2、包下载

        到pypi上找对应版本的包,并下载:

        由于pypi通常较慢,也可以用国内镜像,虽然搜索还是经常把浏览器整崩溃,我也要崩溃了:

https://pypi.tuna.tsinghua.edu.cn/simple/ # 清华大学
https://mirrors.aliyun.com/pypi/simple/ # 阿里云
https://pypi.douban.com/simple/ # 豆瓣
https://pypi.mirrors.ustc.edu.cn/simple/ # 中国科学技术大学
https://pypi.hustunique.com/ # 华中科技大学

        下载包的时候要注意版本,cp36表示适用于python 3.6.x,大多数解释器都是cpython,一般说的 python也是指cpython,amd64指适用于64位操作系统,win32适用于32位操作系统。py2.py3-none-any 适用于python2.x以及python3.x。any表示适用于32/64位操作系统,无限制。

        下载的文件一般有whl和tar.gz两种格式,whl文件采用pip命令直接安装,tar.gz是解压后执行python setup.py install,当直接pip xxx.whl报错setuptools时可以试试这种方法。

3、在开发服务器上创建虚拟环境(不使用anaconda管理跳过)

        离线环境下使用conda命令,需要加上--offline,方可正常使用,如果没网一般只能使用默认的base环境或者与其相同的python版本:

conda create --name Pytorch64 python=3.8 --offline

4、whl安装

        安装时cd到whl所在目录,按照依赖顺序由下往上使用pip install安装即可。

三、直接导入虚拟环境(Anaconda)

        如果环境比较复杂,最好的办法是将整个anaconda环境直接导入,非常方便。在有网络的环境下安装Anaconda后,新建虚拟环境,并用conda/pip安装所需要的库,然后将整个环境迁移到无网络的服务器上即可,前提是无网络的服务器上也需要安装Anaconda。

1、直接复制文件夹

        如下图所示,Anaconda的环境都是安装在envs目录下,使用命令conda env list显示的也是该目录下的环境,因此可以直接将对应的文件夹拷贝到目标机器上Anaconda安装目录的envs文件夹下即可正常使用,如果有Spyder、Jupyter等需要修改一下里面配置文件的路径。

2、将环境打包迁移

(1)克隆环境(可省略)

conda create -n 新环境的名称 --clone 老环境名称

(2)将环境打包

conda install -c conda-forge conda-pack # 安装conda-forge和conda-pack工具

conda pack -n 新环境名称 -o 新环境名称.tar.gz # 将环境打包

 

(3)将压缩包放到目标主机的同版本Anaconda路径下的envs文件夹内,解压
        注意:需要相同版本的Anaconda

(4)在目标主机上激活环境

conda activate 新环境

相关推荐

  1. 开发TEE配置SGX环境

    2023-12-18 09:30:05       5 阅读
  2. pytorch环境配置记录

    2023-12-18 09:30:05       15 阅读
  3. 【Linux 网络状态线安装 MySQL】

    2023-12-18 09:30:05       40 阅读
  4. 【Linux 网络状态线安装 MySQL】

    2023-12-18 09:30:05       38 阅读
  5. 线环境安装python库(推荐pip download)

    2023-12-18 09:30:05       40 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-18 09:30:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-18 09:30:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-18 09:30:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-18 09:30:05       20 阅读

热门阅读

  1. ES6之对象新增的方法

    2023-12-18 09:30:05       40 阅读
  2. IDEA中如何使用Vue

    2023-12-18 09:30:05       39 阅读
  3. 全志V3s之NFS连接ubuntu22.04

    2023-12-18 09:30:05       42 阅读
  4. conda channel的镜像设置

    2023-12-18 09:30:05       33 阅读
  5. 力扣面试150题 | 15.三数之和

    2023-12-18 09:30:05       41 阅读
  6. Spring-整合MyBatis

    2023-12-18 09:30:05       34 阅读
  7. Cmake基础(6)

    2023-12-18 09:30:05       34 阅读
  8. Kubernetes 容器编排(3)

    2023-12-18 09:30:05       32 阅读
  9. python 读取execl 日期是数字或者字符串的处理

    2023-12-18 09:30:05       44 阅读
  10. 【机器学习】数据降维

    2023-12-18 09:30:05       50 阅读
  11. 机器学习scikit-learn实现

    2023-12-18 09:30:05       36 阅读