虚拟环境配置实战-经验总结

项目:https://github.com/Peien429/BotDGT

requirements.txt:

复制代码
pytorch-lightning==2.0.4
torch==1.13.0
torch-cluster==1.6.1+pt113cu117
torch-geometric==2.1.0
torch-scatter==2.1.1+pt113cu117
torch-sparse==0.6.17+pt113cu117
torch-spline-conv==1.2.2+pt113cu117

直接使用pip install -r requirements.txt命令安装的时候,报了错,说找不到torch-cluster相对应的版本。

然后就分开安装。

复制代码
conda install pytorch torchvision pytorch-cuda -c conda-forge -y
conda install pyg -c pyg -y
conda install pytorch-lightning -y

总结:

  1. pip和conda各自安装的包各自看不到,所以容易出现冲突的情况,conda能看到所有自己安装的包,并且解决依赖和冲突的能力比pip强,所有尽量只使用conda来安装包,如果conda没有再使用pip来安装包。

  2. 使用命令conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 cudatoolkit=11.7 时默认安装的是cpu版本的torch。即使先conda install cudatoolkit=11.7再conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 ,仍然下载的是cpu版本的torch。因为conda install命令在不指定特定频道时,依赖解析器会优先选择最容易安装的CPU版本包。要确保安装GPU版本,最可靠的方法是直接从PyTorch官方频道(-c pytorch)安装。官方频道会提供完整的、带CUDA构建的包。如conda install pytorch==1.13.0 torchvision==0.14.0 torchaudio==0.13.0 cudatoolkit=11.7 -c pytorch -c conda-forge。此外如果使用命令conda install pytorch torchvision pytorch-cuda也会下载gpu版本的torch,因为参数 pytorch-cuda,这是一个元数据包,专门用来告诉 conda 安装支持CUDA的PyTorch版本,但是pytorch-cuda 依赖于 cuda-cudart 等精确版本的 CUDA 组件,这些组件是 NVIDIA 官方维护的,所以要有-c nvidia/conda-forge 这两个官方频道否则可能会报错。

  3. conda install pyg -c pyg会安装 PyTorch Geometric(简称 PyG)及其核心依赖包。pyg是一个Conda元数据包它本身并不包含代码,而是一个"包裹"列表,用于指示 conda 自动安装一组相互兼容的包。包括torch-geometric, pyg-lib, torch-scatter, torch-sparse, torch-cluster, torch-spline-conv。

  4. 如果想安装指定版本的pyg可以使用以下命令:

    pip install torch-scatter==2.1.1+pt113cu117 -f https://data.pyg.org/whl/torch-1.13.0+cu117.html
    pip install torch-sparse==0.6.17+pt113cu117 -f https://data.pyg.org/whl/torch-1.13.0+cu117.html
    pip install torch-cluster==1.6.1+pt113cu117 -f https://data.pyg.org/whl/torch-1.13.0+cu117.html
    pip install torch-spline-conv==1.2.2+pt113cu117 -f https://data.pyg.org/whl/torch-1.13.0+cu117.html

按照PyTorch Geometric官方建议,在安装好PyTorch后,使用 pip 并指向其官方的wheel仓库来安装是最可靠的方法。
-f https://data.pyg.org/whl/torch-1.13.0+cu117.html只适用于PyG(torch-geometric)扩展库

不能使用以下命令来安装这两个包:

复制代码
pip install torch-geometric==2.1.0+pt113cu117 -f https://data.pyg.org/whl/torch-1.13.0+cu117.html 
pip install pytorch-lightning==2.0.4+pt113cu117 -f https://data.pyg.org/whl/torch-1.13.0+cu117.html

首先 -f https://data.pyg.org/whl/torch-1.13.0+cu117.html只适用于PyG(torch-geometric)扩展库。而pytorch-lightning不是。

其次torch-geometric和pytorch-lightning发布在PyPI官方仓库,而不是PyG的自定义库。PyPI有严格的版本号规范(可以是2.1.0,但不能是2.1.0+pt113cu117),但自定义仓库可以灵活处理。

  1. 这几个包的介绍

torch (PyTorch)

  • 深度学习核心框架,提供张量计算、自动微分、神经网络构建等基础功能
  • 核心功能:Tensor 运算(类似 NumPy,但支持 GPU);自动微分(autograd);神经网络模块(nn.Module);数据加载器(DataLoader)

pytorch-lightning

  • PyTorch 的高层封装,简化训练流程,提供最佳实践模板
  • 核心功能:自动化训练循环(无需手动写 for 循环);分布式训练支持;实验管理和日志(TensorBoard、WandB 等);Checkpoint 保存和恢复;超参数优化框架

torch-geometric(PyG)

  • 图神经网络(GNN)专用库,提供图数据处理和 GNN 模型实现
  • 核心功能:图数据结构(Data, Batch),标准 GNN 层(GCN, GAT, GraphSAGE 等),图数据转换和增强,常用图数据集

PyG的底层依赖:
torch-scatter :高效的散点操作,用于图神经网络中的节点聚合
torch-sparse :稀疏张量运算,高效处理图结构(邻接矩阵通常很稀疏)
torch-cluster :图聚类算法实现
torch-spline-conv:样条卷积实现,一种特殊的图卷积

包安装的顺序应该是从torch->pytorch-lightning

相关推荐
伞伞悦读7 天前
【第39期】Python 第三方包安装详解:pip、conda、requirements、版本锁定和镜像源
python·conda·pip
梦想不只是梦与想9 天前
环境管理:Conda 与 venv
python·conda·uv
梦想不只是梦与想11 天前
环境管理系统:Conda(一)
python·conda·环境隔离
Blockbuater_drug11 天前
Protenix: conda 环境部署、零基础安装
conda·开源模型·字节跳动·v2·蛋白结构预测·protenix
AlfredZhao12 天前
执行新项目 python 脚本前,先用 conda 建一个独立环境
conda
THe CHallEnge of THe BrAve16 天前
conda虚拟环境打包离线迁移
conda
basketball61621 天前
AI Infra 配置 Conda + CUDA + LibTorch + PyTorch 开发环境:解决版本漂移、编译报错的完整指南
人工智能·pytorch·conda·libtorch
公爵爱学习21 天前
无人机视觉识别前序-Linux-YOLO安装
python·yolo·计算机视觉·conda·无人机
长江后浪博客1 个月前
Conda环境下测试Intel NPU:Python版本如何选择?
开发语言·python·conda·openvino·intel npu
伞伞悦读1 个月前
【第12期】Windows 开发环境备份与恢复:软件、环境变量、Git、conda 和 Docker 卷完整方案
git·docker·conda