pyenvのpyenv global 3.13
のように、uv管理下のpythonをglobal pythonとして使う方法を備忘録として残しておきます。
2025-02-13現在の情報です。preview機能なので、詳しくは以下のissueも参考にしておいてください。
今のところ不都合はありませんが、めちゃくちゃ使い込んでいる訳では無いです。
自己責任でお試しください。
uv python install [設定したいバージョン (e.g. 3.13)] --default --preview
でインストールしたpythonをglobalに使えるようにしてくれてます。
$ uv python install [設定したいバージョン (e.g. 3.13)] --default --preview
$ uv python list
# インストールしたpythonを確認
# .local/bin/python にlinkを張ってるやつがあるはず
$ which python
# ちゃんとuv管理下のpythonになっているか確認
# たぶん .local/bin/python なはず
uv python install [3.XX] --default --preview
ではpython本体のPATHしか設定してくれません。
pip
やそれで入れたxonsh
のようなツールも使いたいので、応急処置的にPATHを設定してあげます。
お好みのprofileやrcファイルでPATHを設定してあげてください。
# 現在のuv python install [3.XX] --default --previewで指定されたpythonがあるbinをPATHに追加
export PATH="$(readlink $HOME/.local/bin/python | xargs dirname):$PATH"
だいぶ無理やりなので、uvが用意してくれた~/.local/bin/python3
も上書きしてしまってます。
もっと良さげな方法がありそうですが、とりあえず動くのでヨシ!(現場猫)
上の方法で使えるようにしたpipだと、externally-managed-environment
と怒られるので、~/.pip/pip.conf
に覚悟を書いておきます。
[global]
break-system-packages = true
これもなんか副作用が怖いですが、uv使っているなら各プロジェクトではvenv作るでしょうということでヨシ!