0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

uv: 自作モジュールをパッケージ化して他プロジェクトで使用する方法

0
Last updated at Posted at 2026-07-09

パッケージ化

別プロジェクトで作成したファイルのクラスやメソッドを、パッケージ化して輸入する方法を示します。

そのためには、汎用性を意識してメソッドやクラスを作成する必要があります。DRYの原則

前提

project
├─ project1
└─ project2
  • 環境はuv管理

実践

  • 仮想環境設定

それぞれのプロジェクト内でuv initを実行し、独立した環境を作成します。


  • メソッドの作成
    project1/Src/iis/piyo1.pyのような構成でファイルを作成、メソッドを実装しました。
 # project1/Src/iis/piyo1.py

def nice():
    print("nice!")

if __name__ == "__main__":
    nice()

# uv run piyo1
# -> nice!

このniceメソッドをパッケージ化して別プロジェクトでも使用したいです。

ファイルを同期して別プロジェクトで使用する方法もありますが、ここではパッケージ化して輸入する方法を載せました。


  • project1内のpyproject.tomlに以下を記載
    tomlファイルはuv initを実行した時に自動で作成される設定ファイルです。
[build-system]
requires = ["hatchling>=1.25"]
build-backend = "hatchling.build"

[tool.hatch.build.targets.wheel]
only-include = ["Src/iis"]
sources = ["Src"]

内容は、Src/iis内のファイルをパッケージとして認識してもらう。です。


  • project1内でuv buildを行う
    project1にdistフォルダが作成されます。これで、別プロジェクトでファイルを輸入する準備が整いました。

もし、上の階層(project)に.gitや.tomlがある場合はそちらに/distが作成されるかも。その時は、uv build --out-dir distです。


project2に移動後

  • uv add ../project1/dist/project1-0.1.0-py3-none-any.whl
    これでproject1/Src/iis内のファイルを輸入する事が出来ます。

project2/piyo2.pyを作成、確かめてみます。

# project2/piyo2.py
from iis.piyo1 import nice

nice()

# uv run piyo2
# -> nice!

お疲れ様でした。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?