「uv」と「pip install」は混ぜるな危険
詳しくは
この人がまとめてくれている
細かい話は、その時々で見たらいいが、
自分自身に向けて、とりあえず、これだけは、という注意事項だけ、書いた。
「uv」と「pip install」は混ぜるな危険
uvを使ったら、pipは使うな
pipを使ったら、uvは使うな
( 飲んだら、乗るな、乗るなら、飲むな みたいなもん )
「uv」は、
詳しいことは、知らん
お作法として、.venvが未だないとき、
uv syncだけやる
そしたら、.venvが自動で作られる。
.python-versionや、
pyproject.toml
( uv.lockがあればそれも)
の内容が適切ならば、
pythonの本体も含めて.venvの中にインストールされる
補足 その1
uv syncが.venvの中にインストールするpythonの本体のバージョンは、.python-versionファイルがあれば、
.python-versionのファイルの中で書かれてるバージョンを優先的に使用する.python-versionファイルがなければ、
pyproject.tomlの中の
requires-pythonに書かれたバージョンを使用する
補足 その2
uv以外の他のpythonの仮想環境は、あらかじめ
pythonの本体がある前提である
( pythonの本体がmiseでインストールしたものでもよい )
uv sync
で作られた.venvに対して、
source .venv/bin/activate
で、アクティベートしてから
which python
したら
なにがし/.venv/bin/python
のようなパスが表示される
uv sync 以外の
uv なにがし
は、
source .venv/bin/activate
で、アクティベートしてから行うのが、お作法。
「pip」は、
先に、仮想環境(uv以外の種類のです)を作った後に、
source .venv/bin/activate
で、その仮想環境をアクティベートしてから
pip install -r requirements.txt
である。
しかし、それで仮想環境の中にインストールできるのは周辺ライブラリ
pythonの本体は、元から準備されていることが前提( pythonの本体は、miseで準備でもよい )
まとめ「2パターン」考えられる
パターンその1
pythonの本体+周辺ライブりを、uv 一択で構築する
パターンその2
python本体を先にインストールしておく、miseを活用するのも便利
その後、該当フォルダで、pythonの仮想環境 ( uv以外の以前からあるもの )
で、仮想環境作ってから
source .venv/bin/activate
で、仮想環境をアクティベートして
その後、
pip install -r requirements.txt
Discussion