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
依靠您确切的含义
- 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
如上所述,
--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明确说明:
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
- pip
文件我还尝试指定以下文件:
environment.yml
应该自行起作用(特别是,它也应安装预释放版本,即使不指定
conda
pip
,但是,这再次使requirements.txt
应用了Globally,因此阻止了如上所述的PYPI等安装诸如PYPI的软件包。