既存プロジェクトもuvにしたい
Python学習で過去に作ったプロジェクトをuv管理に変更してみます。
【プロジェクトの状況】
- VSCode利用
- venv(Python標準ライブラリ)を使った仮想環境を利用
-
.venvフォルダが存在する -
requirements.txtなし -
pyproject.tomlなし
下記の手順を試されるかたは
念のためプロジェクトフォルダごとバックアップしておいてください。
1.既存 .venv から requirements.txt を生成
1.1 VSCodeでプロジェクトを開く
1.2 VSCodeでターミナルを開く
1.3 ターミナルで.venvをアクティベート
.\.venv\Scripts\Activate.ps1
1.3 現在の環境に入っているライブラリ等の情報をエクスポート
pip freeze > requirements.txt
プロジェクトフォルダにrequirements.txtが作成される
2. .venvフォルダを削除
2.1 ターミナルを閉じる
2.2 VSCodeのエクスプローラーで.venvフォルダを削除
3.uv初期化(初期ファイル作成)
3.1 VSCodeでターミナルを開く
uv init
プロジェクトフォルダに初期ファイルが作成される
-.python-version
-main.py(サンプルソースなので削除してOK)
-pyproject.toml
-README.md
4. (uvの)仮想環境作成
uv add -r requirements.txt
-プロジェクトフォルダに.venvフォルダが作成される
-.venvフォルダにrequirements.txtの依存ライブラリなどがインストールされる
-pyproject.tomlに依存ライブラリなどの情報が自動で追記される
-uv.lockが自動作成される(pyproject.tomlをもとに実際にインストールされたバージョンなどの情報)
ここまでのコマンドまとめ
..venv\Scripts\Activate.ps1
pip freeze > requirements.txt
rm -rf .venv
uv init
rm -f main.py
uv add -r requirements.txt
5. VSCode の 仮想環境の自動認識の確認
※自動的にアクティベートされない場合もあるので必須ではありません。
5.1 VSCodeでターミナルを開く
自動的に.venv/Scripts/Activate.ps1が実行され
プロンプトの表記がかっこ表記でプロジェクト名(仮想環境名?)になる
6.Pythonのインタープリタの指定の確認
6.1 VSCode で任意のPythonのソースを開く
画面右下にPythonのバージョンとかっこ表記でプロジェクト名(仮想環境名?)になる
※wslなどにリモートで接続しているときは表示されないことがあります。
設定(Ctrl+Shift+P)からも確認可能です。
Python:Select Interpreter
インタープリタの指定の画面が表示されない場合は
Pythonの拡張機能がインストール済みか確認してみてください。
7. チーム開発などで他の人にも同じ環境としてもらうには
7.1 他の人の環境にも uv をインストールしてもらう
7.2 ソースとともに下記のファイルを渡す
-.python-version Pythonのバージョンの宣言
-pyproject.toml 依存の宣言(範囲指定OK)
-uv.lock依存の完全固定※バージョンの指定を厳密に同じにしたい場合はこのファイルも渡す
-
.venvフォルダは渡さない
7.3 uv管理下のPythonインストール
.python-version に記載と同じバージョンを指定する
uv python install (Get-Content .python-version)
または
uv python install 3.13 のようにバージョンを直接書いてもOK
7.4 プロジェクトフォルダで同期実行
uv sync
ここまでの手順でたぶん同じ環境になると思います。
補足
と、ここまで書いて思ったのですが、
VSCodeの拡張機能についても同じにしてもらう方法を調べる必要がありますね…。
.vscode/extensions.json を渡すとか?
Dev Container を使うとか?