🗂
pyenv+venv→uvへの乗り換え
群雄割拠 pythonパッケージ管理
poetryが流行ったと思ったらryeが現れ,その次はuv?
貴様らどんだけ浮気性なんじゃ!と思い,実験環境ではpyenv+venv
,デプロイではdockerfile
にpip install
ベタ書き,と言う構成を頑なに使い続けていたのですが,試しに使ってみたuvがfaster and simpler と感じたので乗り換えることにしました.以下最小限の置き換えです.その他の便利機能は色々あるみたいですが,僕には扱いきれそうもないので他記事を参照してください.
環境
ubuntu 20.04/22.04
インストール
curl -LsSf https://astral.sh/uv/install.sh | sh
uv -h
pythonバージョン管理
今までpyenv install 3.12.6
とやっていたところは
uv python install 3.12.6
となる.ただし,pyenv global 3.12.6
のように,デフォルトのエイリアスを乗っ取る機能は(おそらく)ない.uv内のpythonを外から使う時は,uv python xxx.py
とする必要がある.けれど,pyenvではbin直下のpythonと競合することもよくあったので,こっちの方が良い気がする.
venv作成
今までpython -m venv .venv
とやっていたところは
uv venv {venv_name(optional)} --python {3.x.y(optional)}
となる.早い!
立ち上げには同じようにsource .venv/bin/activate
でOK.
vscodeのpython拡張でもちゃんとインタプリタとして認識してくれる.
pip install
今までpip install xxx
とやっていたところは
uv pip install xxx
となる.早い!かっこいい!
注意として,.venv内ではpythonコマンドはuv内のpythonが使われてくれるのだが,pipコマンドは外のpipが使われてしまう.
つまり,pip
じゃなくてuv pip
を使ってねということ.
Discussion