如何在环境中指定夜间pytorch版本。

问题描述 投票:0回答:1
仔细考虑以下环境。

channels: - nvidia - defaults - conda-forge dependencies: - bottleneck>=1.3.6 - catboost>=0.24.4 ... - pip: - xgboost==2.1.4 ...

如何将以下PIP命令添加到YML文件中,而不会破坏上述其他PIP安装命令的当前行为?
pip3 install --pre torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

依靠您确切的含义
python pytorch pip conda
1个回答
0
投票
- pip

文件的environment.yml部分的可行解决方案:

channels:
  - nvidia
  - defaults
  - conda-forge
dependencies:
  - pip:
    - --pre
    - --extra-index-url https://download.pytorch.org/whl/nightly/cu128
    - xgboost==2.1.4
    - torch
    - torchvision
    - torchaudio
为什么我认为这应该在您的情况下起作用

标志是PIP要求的

全球选项。但是,由于您明确指定了所有其他显示的软件包的确切版本(在这种情况下为

--pre
    ,在这种情况下)仅适用于未指定的精确版本的那些(在这种情况下,在这种情况下)。
  • 使用
    xgboost==2.1.4
    而不是torch将确保(a)将从PYPI安装指定URL中不存在的软件包,(b)指定URL中存在的软件包可能会从那里安装,包括预先释放版本,因为我们指定了
    torchvision
    flag。
    使用相应的YAML文件并在我的情况下通过
    torchaudio
    安装以下软件包,在我的情况下:
    --extra-index-url
  • so,唯一的预订版本确实是Pytorch套件和潜在依赖性的版本。
  • 为什么这个解决方案可能仍然有问题
    如上所述,
    --index-url
    标志是一个全局选项。因此,如果
    没有破坏其他PIP安装命令的当前行为,则意味着仅应应用于pytorch软件包和潜在依赖项,除非所有其他软件包及其依赖项都不允许以预先释放版本的方式明确指定。 当然,您可以在内侧指定pytorch软件包的确切预订版本并丢弃
    --pre
    标志,但我想这将无视您当前使用
  • conda
呼叫的目的的目的(即,安装最新的夜总会而不准确地指定它们)。

什么不起作用

我尝试了其他一些事实失败的方法。
完全删除
pip

您可能已经注意到电话…

filelock 3.18.0 pypi_0 pypi fsspec 2025.3.0 pypi_0 pypi jinja2 3.1.6 pypi_0 pypi markupsafe 3.0.2 pypi_0 pypi mpmath 1.3.0 pypi_0 pypi networkx 3.4.2 pypi_0 pypi numpy 2.2.3 pypi_0 pypi nvidia-cublas-cu12 12.8.3.14 pypi_0 pypi nvidia-cuda-cupti-cu12 12.8.57 pypi_0 pypi nvidia-cuda-nvrtc-cu12 12.8.61 pypi_0 pypi nvidia-cuda-runtime-cu12 12.8.57 pypi_0 pypi nvidia-cudnn-cu12 9.7.1.26 pypi_0 pypi nvidia-cufft-cu12 11.3.3.41 pypi_0 pypi nvidia-cufile-cu12 1.13.0.11 pypi_0 pypi nvidia-curand-cu12 10.3.9.55 pypi_0 pypi nvidia-cusolver-cu12 11.7.2.55 pypi_0 pypi nvidia-cusparse-cu12 12.5.7.53 pypi_0 pypi nvidia-cusparselt-cu12 0.6.3 pypi_0 pypi nvidia-nccl-cu12 2.25.1 pypi_0 pypi nvidia-nvjitlink-cu12 12.8.61 pypi_0 pypi nvidia-nvtx-cu12 12.8.55 pypi_0 pypi pillow 11.1.0 pypi_0 pypi pytorch-triton 3.3.0+git96316ce5 pypi_0 pypi scipy 1.15.2 pypi_0 pypi sympy 1.13.3 pypi_0 pypi torch 2.8.0.dev20250313+cu128 pypi_0 pypi torchaudio 2.6.0.dev20250313+cu128 pypi_0 pypi torchvision 0.22.0.dev20250313+cu128 pypi_0 pypi typing-extensions 4.12.2 pypi_0 pypi xgboost 2.1.4 pypi_0 pypi

…即使省略了

--pre

标志,仍将安装
--pre--pre
pip install

的预释放版本。这首先可能是违反直觉的,因为

--pre
docs
明确说明:

通过v1.4启动,PIP仅按照

PRE-REELEASES的指定安装稳定版本。 但是,如果我们遵循引文中的链接,我们将在那里找到: 任何形式的预释放…被隐式排除在所有版本指定词中,

unles

…唯一满足版本规范符的可用版本是预释放。 这意味着:


如果我们只指定

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/nightly/cu128

,则即使没有
torch
标志,也会安装pytorch的预释放版本,因为在给定的URL下,只能找到预释放,因此只能通过安装预点释放来满足要求。这里的问题:在此URL下找不到的软件包(在给定情况下)根本无法安装。

如果我们指定

torchvision
但不提供
torchaudio
标志,则可以安装
--pre
。这里的问题:现在将安装Pytorch软件包的版本,因为可以在PYPI上找到它们。
pip
文件中提供两个单独的
--index-url https://download.pytorch.org/whl/nightly/cu128
部分

在安装
--pre

依赖项时做什么,本质上是(1)从yaml文件的xgboost部分创建一个临时文件,然后(2)通过--extra-index-url https://download.pytorch.org/whl/nightly/cu128命令安装此

--pre
文件。我认为可以工作的是创建两个单独的
    xgboost
  • 部分 - 一个用于您的“常规”依赖项,一个用于Pytorch软件包。但是,除最后一个部分外,所有这些部分似乎都被忽略了。 引用到外部- pip
    文件
    我还尝试指定以下文件:
    environment.yml
    应该自行起作用(特别是,它也应安装预释放版本,即使不指定
    conda
  • 标志;请参见上文)。然后,我尝试将其包含在yaml文件中
  • pip
    ,但是,这再次使
    requirements.txt
    应用了
    Globally
    ,因此阻止了如上所述的PYPI等安装诸如PYPI的软件包。
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.