Skip to content
jyup-escapePublic

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Latest commit

 

History

31 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

UV python

PYVY — モジュールと環境マネージャー(PyQt6 + uv)

パッチノート

Distribution Version
0.1.1 0.1.1
0.1.2 0.1.2
0.1.2.1 1.68.2
0.1.2.2 1.68.2

0.1.2.1以下は動きません GUI で Python 仮想環境とモジュール(パッケージ)を管理できるデスクトップアプリです。内部的に uv を呼び出して、環境作成・パッケージの一覧/インストール/アンインストール/アップデートなどを行います。PyQt6 製で、非同期実行(QThread)により UI をブロックしません。

想定用途: 複数の仮想環境や依存パッケージを GUI から直感的に扱いたい個人/チーム向け。


主な機能

  • 環境管理

    • 既存環境の自動検出(<プロジェクト>/.venv と envs/ 配下)
    • 新規環境の作成(uv venv)
    • 管理対象内の環境削除
    • 選択中環境の Python バージョン表示(pyvenv.cfg から)
  • モジュール(パッケージ)管理

    • インストール済みモジュール一覧(uv pip list --format json)
    • キーワード検索フィルタ
    • 指定モジュールの インストール/削除/バージョン固定(== 指定)
    • アウトデート検出 → 一括アップデート(確認ダイアログ付き)
  • UI/操作性

    • 行選択テーブル、交互行色、ステータスバー
    • 実行中は操作を抑止して安全化(ビジー表示)
    • エラー/確認/情報ダイアログ

動作要件

python UV

  • Python 3.10+(3.11/3.12 推奨)

  • uv CLI が PATH から実行可能であること

Distribution Version
windows11 0.1.2.2
Ubuntu 24.04.3 0.1.2.2
Mac 1.68.2

Ubuntu, Macは動作確認が遅れるため、1バージョン遅れます。 本アプリは uv を通じて仮想環境・パッケージ操作を行います。pip の代替として uv を利用します。


セットアップ

pip install PYVY

実行方法

pyvy

本 README のコード例では ModuleGUI を直接 __main__ から起動します。


使い方

1) 環境管理

  • 検出: プロジェクト直下の .venv、および envs/ ディレクトリ配下の仮想環境(pyvenv.cfg が存在するもの)を自動検出します。
  • 新規作成: 「新規環境作成」を押下し、環境名を入力します。
  • 削除: envs/ 配下にある環境のみ削除できます(安全のため管理外は不可)。
  • Python バージョン管理: ダイアログで指定バージョンを入力 → uv python install <version> を実行します。

2) モジュール管理

  • 一覧: 「環境」を選択すると、uv pip list --format json の結果をテーブル表示します。
  • 検索: 上部の検索欄にキーワードを入力するとクライアント側フィルタで絞り込みます。
  • インストール: 下部入力にパッケージ名(例: requests、pydantic==2.9.2)→「インストール」。
  • バージョン管理: 行の「バージョン管理」から特定バージョンを指定して再インストールします。
  • 削除: 行の「削除」でアンインストールします(確認あり)。
  • 一括更新: 「一括モジュール更新」→ アウトデート検出 → 更新実行(確認あり)。

仕組み(実装メモ)

  • 非同期実行: CommandThread(QThread) が uv コマンドを別スレッドで実行し、シグナルで結果を返します。
  • UI のビジー制御: 実行中はボタン/入力/UI 全体を無効化し、完了後に復帰します。
  • 環境検出: discover_environments() で .venv と envs/*/pyvenv.cfg を列挙・重複排除。
  • Python 実行ファイル: OS 別に bin/python(Unix)/Scripts/python.exe(Windows)を検索。
  • モジュール一覧/更新: uv pip list --format json / --outdated を利用して JSON を解析しテーブル更新。

トラブルシュート

  • uv が見つからない

    • PATH に uv が通っていない可能性があります。ターミナルで uv --version を実行して確認してください。
  • 環境が検出されない/空

    • .venv または envs/ 配下に pyvenv.cfg が存在するか確認してください。
  • Windows でアンチウイルスにブロックされる

    • uv の実行を許可してください。権限に注意してください。
  • 権限エラー

    • システム領域や管理者権限が必要なディレクトリでの操作を避け、ユーザーディレクトリ配下で実行してください。

開発ガイド

  • 依存: PyQt6(UI)、uv(外部 CLI)

  • コード構成:

    • ModuleGUI(QWidget): UI/状態/イベント束ね
    • CommandThread(QThread): コマンド実行と結果通知
  • 今後の拡張候補(ロードマップ例)

    • インストールログ/履歴ダイアグラムの表示
    • 依存関係ビュー(tree)
    • 設定のエクスポート/インポート(JSON)
    • ダークテーマ/テーマ切替
    • エラーメッセージの改善(詳細ログ保存)

協力してくれる方向け

現在困っているもの

  • Macでのテスト
  • Linuxでのテスト
  • pythonの互換性テスト

ライセンス

  • リポジトリ同梱の LICENSE を参照してください。

謝辞

  • 本アプリは Astral の uv に大きく依存しています。素晴らしいツールの提供に感謝します。

About

No description, website, or topics provided.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages