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

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

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

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

  • 使用pipdownload命令下载所需的包及其依赖。例如,要下载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包

  • 使用condaconda 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里能找到相关安装包==)

相关推荐
JaguarJack6 小时前
PHP 的异步编程 该怎么选择
后端·php·服务端
BingoGo6 小时前
PHP 的异步编程 该怎么选择
后端·php
JaguarJack21 小时前
为什么 PHP 闭包要加 static?
后端·php·服务端
ServBay2 天前
垃圾堆里编码?真的不要怪 PHP 不行
后端·php
用户962377954482 天前
CTF 伪协议
php
BingoGo4 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php
JaguarJack4 天前
当你的 PHP 应用的 API 没有限流时会发生什么?
后端·php·服务端
BingoGo5 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php
JaguarJack5 天前
OpenSwoole 26.2.0 发布:支持 PHP 8.5、io_uring 后端及协程调试改进
后端·php·服务端
JaguarJack6 天前
推荐 PHP 属性(Attributes) 简洁读取 API 扩展包
后端·php·服务端