使用pip或conda离线下载安装包,使用pip或conda安装离线安装包

使用pip或conda离线下载安装包,使用pip或conda安装离线安装包

一、使用pip离线下载安装包

1. 在有网络的机器上下载包和依赖

  • 使用pip的download命令下载所需的包及其依赖。例如,要下载requests包,可以使用命令pip download requests。这会下载requests包及其所有依赖到当前目录。
  • 如果需要下载特定版本的包,可以使用pip download <package_name>==<version>命令。
  • 如果需要下载多个包或整个项目的依赖,可以先创建一个requirements.txt文件列出所有依赖及其版本,然后使用pip download -r requirements.txt命令下载所有依赖。
  • 想把包下载到特定目录则:pip download requests -d packages

2. 传输离线安装包

将下载的.whl、.tar.gz等离线安装包文件通过USB驱动器、SCP、FTP或其他任何方法传输到离线的目标机器。

二、在目标机器上离线安装pip包

  1. 安装.whl文件
    转到包含下载的.whl文件的目录。
    使用pip命令从本地文件安装,例如pip install <package_name>-<version>.whl。
  2. 安装.tar.gz或.zip源码包
    对于.tar.gz或.zip等源码包,需要先解压,然后进入解压后的目录。
    在解压后的目录中,运行python setup.py install命令进行安装。
  3. 使用requirements.txt文件安装多个包
    如果已经通过pip download -r requirements.txt获取了完整的依赖链,可以直接在目标机器上使用命令pip install --no-index --find-links=<path_to_packages_folder> -r requirements.txt进行安装。这里的是包含离线安装包的本地文件夹路径。

三、使用conda离线下载安装包

虽然问题主要询问pip的操作,但conda也是一种常用的Python包管理工具,支持离线安装。以下是conda离线安装的基本步骤:

1. 在有网络的机器上下载conda包

  • 使用conda的conda install --download-only <package_name>命令下载包但不实际安装。但需要注意的是,conda官方并不直接支持像pip那样的download命令,因此这里提到的是一个变通方法。
  • 使用如下命令可以把包放到特定的directory目录中(但是这条命令不太好用,因为你指定的directory必须是conda希望的包的下载路径,所以用上面的命令即可。)conda install <package_name> --download-only -p <directory>
  • 或者,可以使用conda的conda pack工具来打包整个conda环境,包括所有安装的包和依赖。

2. 传输conda包或环境包

  • 将下载的conda包或打包的环境文件传输到离线的目标机器。

3. 在目标机器上安装conda包或解压环境包

  • 对于单独下载的conda包。
    • conda install --use-local -p <directory> <package_name>
    • 例如:conda install --use-local -p /anaconda3/pkgs numpy
  • 对于使用conda pack打包的环境文件,可以在目标机器上解压,并按照conda环境的常规方法激活和使用。

注意事项

  1. 确保目标机器和用于下载离线包的机器上的Python版本以及操作系统架构(如32位与64位)一致,否则可能导致兼容性问题。
  2. 在安装过程中,记录安装信息(如使用--record选项)可能有助于后续的卸载和清理工作。
  3. 当需要更新或添加新的离线包时,重复上述下载和安装过程,并注意检查新旧版本之间的依赖变化。

比如我现在运行命令

py 复制代码
conda install --download-only debugpy

其就可以自动把debugpy和其相关的安装包下载下来了。(在==/anaconda3/pkgs里能找到相关安装包==)

相关推荐
大白玉米6 小时前
MoxPlayer 弹幕播放器源码智能解析线路管理系统自研内核
php
测试界的小码农1 天前
【Linux 命令实战(03):文件创建、复制、移动与删除,掌握 touch、mkdir、cp、mv、rm】
linux·服务器·php
叼烟扛炮1 天前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php
叼烟扛炮2 天前
Linux 学习笔记(五十六):IO 多路复用初探——select 的“三宗罪”
linux·服务器·数据库·笔记·学习·php
zhikouai2 天前
把外部助手接进聊天软件的架构分层与参数配置
服务器·网络·php
叼烟扛炮2 天前
Linux 学习笔记(五十八):IO 多路复用封神——epoll 底层原理揭秘
linux·运维·服务器·网络·笔记·学习·php
叼烟扛炮2 天前
Linux 学习笔记(五十一):数据链路层与 ARP 协议——局域网寻址与黑客骗局
linux·网络·网络协议·php·tcpdump
vipxieliang2 天前
语言对比卡:PHP vs Go vs Java 的优缺点、适用场景与「为什么选 PHP」
java·go·php
东鹏特饮3 天前
系统运维(传统/通用运维)面试题
开发语言·php
多客:duokelijie3 天前
代练订单系统选型思路:跨品类游戏接入、订单分层管理、自动结算逻辑拆解!
数据库·mysql·微信小程序·前端框架·uni-app·php·持续部署