Closed1
Rye で torch×ChromaDB でパッケージコンフリクトする
状態
pyproject.toml
dependencies = [
"torch==2.4.0+cu121",
"torchvision==0.19.0+cu121",
"torchaudio==2.4.0+cu121",
"langchain-chroma>=0.1.3",
]
[[tool.rye.sources]]
name = "pytorch"
url = "https://download.pytorch.org/whl/cu121"
以下のようなエラーが出る。
> rye sync
Reusing already existing virtualenv
Generating production lockfile: T:\pkg-confrict\requirements.lock
× No solution found when resolving dependencies:
╰─▶ Because only tqdm==4.64.1 is available and chromadb>=0.4.0,<=0.5.3 depends on tqdm>=4.65.0, we can conclude that chromadb>=0.4.0,<=0.5.3 cannot be used.
And because only the following versions of chromadb are available:
chromadb<=0.4.0
chromadb==0.4.1
[一部省略...]
chromadb==0.5.3
chromadb==0.5.4
chromadb==0.5.5
and langchain-chroma==0.1.3 depends on chromadb>=0.4.0,<0.5.4, we can conclude that langchain-chroma==0.1.3 cannot be used.
And because only langchain-chroma<=0.1.3 is available and you require langchain-chroma>=0.1.3, we can conclude that your requirements are unsatisfiable.
error: could not write production lockfile for project
簡単に要約すると、
「ChromaDBは tqdm >= 4.65.0
が必要だが、tqdm == 4.64.1
しか提供されていなよ!」ってことです。
ん、なわけと思ったのですが、
torchのためのindexのURL (https://download.pytorch.org/whl/cu121 )には、tqdm == 4.64.1
しか提供されていないです。
どうやら、 [[tool.rye.sources]]
を指定すると、そのURL先にあるパッケージはURL先からしかダウンロードしてきてくれないみたいです。
解決策
pyproject.toml
dependencies = [
- "torch==2.4.0+cu121",
- "torchvision==0.19.0+cu121",
- "torchaudio==2.4.0+cu121",
+ "torch @ https://download.pytorch.org/whl/cu121/torch-2.4.0%2Bcu121-cp312-cp312-win_amd64.whl#sha256=b5c27549daf5f3209da6e07607f2bb8d02712555734fcd8cd7a23703a6e7d639",
+ "torchvision @ https://download.pytorch.org/whl/cu121/torchvision-0.19.0%2Bcu121-cp312-cp312-win_amd64.whl#sha256=43c7b72a45360959b518a273b1c217ea5992da39e99b498cea8b19766954513c",
+ "torchaudio @ https://download.pytorch.org/whl/cu121/torchaudio-2.4.0%2Bcu121-cp312-cp312-win_amd64.whl#sha256=215d6753381fefee6df4fe5d70c047652193c72f6ecec1f969d049e0b26fe745",
"langchain-chroma>=0.1.3",
]
-[[tool.rye.sources]]
-name = "pytorch"
-url = "https://download.pytorch.org/whl/cu121"
indexのURL (https://download.pytorch.org/whl/cu121 ) を直接たどってwhlファイルのURLを直接指定します。[[tool.rye.sources]]
はいりません。
記述を書き換えたら rye sync
で更新します。
そもそもなのですが torch
自体は tqdm
に依存していないようです。(requirements.lockを参照)
なお、rye add
コマンドを使用する際は以下のようにします。
rye add torch -url https://download.pytorch.org/whl/cu121/torch-2.4.0%2Bcu121-cp312-cp312-win_amd64.whl#sha256=b5c27549daf5f3209da6e07607f2bb8d02712555734fcd8cd7a23703a6e7d639
このスクラップは27日前にクローズされました