PyCharmに追加されたuvでパッケージ管理
PyCharmに追加されたuvでパッケージ管理 PyCharmはバージョン2024.3.2から、既存のVirtualenvやPipenv、Poetryに加えて、新たに「uv」を使ったパッケージ管理が可能になりました。この […]
Filter by Category
PyCharmに追加されたuvでパッケージ管理 PyCharmはバージョン2024.3.2から、既存のVirtualenvやPipenv、Poetryに加えて、新たに「uv」を使ったパッケージ管理が可能になりました。この […]
2024年に最も読まれた記事ランキング あけましておめでとうございます2025年もどうぞよろしくお願いします ファントムは2025年も皆様のお役に立てるよう精進しますより一層のご支援、お引立てを賜りますようお願い申し上げ […]
git stashでコミット前の作業を退避する 開発の途中で別のブランチに切り替えたり、緊急の修正が必要になることも珍しくありません。そんなときに現在の変更はコミットせずに一時的に保存しつつ、変更前のクリーンな状態に戻し […]
Jetson NanoのWiFiモジュール取り付け手順 Jetson NanoはNVIDIA社が提供するGPUを搭載した小型かつ低電力で動作する開発用ボードです。GPUを搭載しているのでCUDAを使って画像処理などの並列 […]
2023年に最も読まれた記事ランキング あけましておめでとうございます2024年もどうぞよろしくお願いします ファントムは2024年も皆様のお役に立てるよう精進しますより一層のご支援、お引立てを賜りますようお願い申し上げ […]
GitHubリポジトリを別のOrganizationに移行 非公開用のOrganization(組織)で管理していたリポジトリの公開範囲をプライベートから公開に変更するにあたって、リポジトリを別のOrganization […]
GitHub CopilotをPyCharmで使用するまでの手順 GitHub Copilotは、プログラミングの効率を飛躍的に向上させるツールで、開発者にとって非常に便利なコーディングのサポートを提供します。本記事では […]
Twitter APIの変更に関して 最近、Twitter APIのバージョンがアップデートされ、v1が廃止されました。これに伴い、開発者はv2への移行が必要となります。 Twitter v1の廃止 Twitter v1 […]
タイプヒント, コメント, ドックストリングの追記とGitHubでのコンフリクト コメントの記述方法と注意点 タイプヒントの記述方法と注意点 ドックストリングの記述方法と注意点 GitHubのコンフリクト発生時の対処法に […]
VSCodeとGitでのコード管理 行ったこと アクセストークンの取得リポジトリのクローン リポジトリのクローン ブランチの作成 ファイルのコミット 同期 ターミナルでのgitbashの利用(windows) 作業用のブ […]
vue createで作成する際に.gitが生成されないようにする Vue.jとDjangoのプロジェクトをGitで管理しようとしたところ、vue createで生成したディレクトリだけが追加されていないことがわかりまし […]
.gitignoreには書かずに自分の環境だけファイルを管理から外す Gitでは管理から外すファイルを指定するには、.gitignoreファイルを使用します。これは、Gitが無視するべきファイルやディレクトリのリストを書 […]
コマンドラインからPyCharmを起動する Pythonで開発する時は必ず使っているJetBrains社のPyCharmですが、全部入りのIDEであるが故に仮想環境やフレームワークの自動設定などのサポートが手厚いことがか […]
tcp 0.0.0.0:5000: bind: address already in use FlaskやFastAPIで開発することも増えてきたので5000番のポートを使用する機会が増えました。Djangoで開発する時 […]
PyCharmで.txtファイルで発生するRequirementsTokenTypeというエラー PyCharmで拡張子が.txtファイルを開くとエディタに以下のようなエラーが発生します。 PyCharmでは.txtはr […]
お名前.comからXserver Domainにドメイン移管 年末や年度末になるとサーバーやドメインの新規契約や更新の時期ですよね。その時々で費用や使いやすさを重視してサービスを選んだ結果、別々の会社で管理されているドメ […]
2022年に最も読まれた記事ランキング あけましておめでとうございます2023年もどうぞよろしくお願いします ファントムでは「情報技術で人々の暮らしを豊かにする」という企業理念で、2023年も皆様のお役に立てるよう精進し […]
Sentryのエラー検知をSlackに通知 前回に引き続き、今回はSentryとSlackの連携方法について説明します。 SentryとSlackの連携機能は導入する決め手となった理由の一つです。デフォルトではメールアド […]
コピペでOK! エラー検知・監視でSentryを導入 システムを運用していくうえで避けては通れないシステムの監視とエラーの検知ですが、ファントムではSentryというサービスを利用しています。SentryとSlackを連 […]
競艇で実装した戦略を紹介します。 1着率を正規化 まず試したのはそれぞれの選手の1着率を全試合から計算してそれをその試合ごとに正規化する方法です。 期待値はオッズと確率の積で表せるので、確率を計算することで相対的にどの券 […]
PyCharmはバージョン2024.3.2から、既存のVirtualenvやPipenv、Poetryに加えて、新たに「uv」を使ったパッケージ管理が可能になりました。この記事では、uvによるパッケージ管理の特徴や使い方についてを解説します。
PC: MacBook Pro (14, 2021)
OS: macOS Monterey 12.6.7
PyCharm: 2024.3.2
Python: 3.12.0
uvは「Rustで書かれた非常に高速なPythonパッケージとプロジェクト管理ツールです。」と書かれています。今回、pipとの速度比較を行った結果、キャッシュを使用せずにインストールしたため「pipより10〜100倍速い」とはなりませんでしたが、6〜7倍ほどの速度差が出ました。
パッケージを追加する場合は、uv add
コマンドを使用します。以下のように複数のパッケージを同時にインストールすることも可能です。インストールしたパッケージはpyproject.tomlに追加されます。
uv add black flake8 isort setuptool
pyproject.toml
[project]
name = "uv-demo"
version = "0.1.0"
description = "Add your description here"
requires-python = ">=3.12"
dependencies = [
"black>=25.1.0",
"flake8>=7.1.2",
"isort>=6.0.0",
"setuptools>=75.8.0",
]
追加したパッケージを除外する場合は、uv remove
コマンドを使用します。コマンドを実行するとpyproject.tomlから除外されます。
uv remove black
pyproject.toml
[project]
name = "uv-demo"
version = "0.1.0"
description = "Add your description here"
requires-python = ">=3.12"
dependencies = [
"flake8>=7.1.2",
"isort>=6.0.0",
"setuptools>=75.8.0",
]
開発環境のみで使用するパッケージを追加する場合は、uv add --dev
コマンドを使用します。インストールしたパッケージはpyproject.tomlのdependency-groupsに追加されます。
uv add --dev black flake8 isort setuptools
pyproject.toml
[project]
name = "uv-demo"
version = "0.1.0"
description = "Add your description here"
requires-python = ">=3.12"
dependencies = []
[dependency-groups]
dev = [
"black>=25.1.0",
"flake8>=7.1.2",
"isort>=6.0.0",
"setuptools>=75.8.0",
]
開発環境に追加したパッケージを除外する場合は、uv remove --dev
コマンドを使用します。コマンドを実行するとpyproject.tomlから除外されます。
uv remove --dev black
pyproject.toml
[project]
name = "uv-demo"
version = "0.1.0"
description = "Add your description here"
requires-python = ">=3.12"
dependencies = []
[dependency-groups]
dev = [
"flake8>=7.1.2",
"isort>=6.0.0",
"setuptools>=75.8.0",
]
パッケージを同期する場合は、uc sync
コマンドを使用します。
全てのパッケージを同期
uv sync
本番環境でのみ使用するパッケージを同期(開発環境に追加したパッケージは含めない)
uv sync --no-dev
比較すると、uv add
が約0.44秒、pip install
が約3秒弱なので、単純な計算では 6〜7倍ほどの速度差がでました。
群馬県でPythonを使ったAIやソフトウェアを開発している株式会社ファントムが運営しています。