Python パッケージ開発の気の抜けたtip(s)

2024/09/23に公開

こんにちは、沙代です。
ちょっとPythonパッケージを作ってみようかなというときに、動作を試してみたいことってありますよね。
そのときにimportの仕方が難しくてエラーが出てしまったりするので、そのときに使った限られた状況で使えるtipsを投稿してみようと思います。

環境
MacOS: macOS Montery 12.6.2 (Apple M1 Pro)
iTerm2: 3.5.4
Python: 3.7.0

TL; DR

mypackage/の親ディレクトリ下で実行する。

準備

$ cd ~
$ tree mypackage
mypackage
├── __init__.py
├── core
│   └── main.py
└── others
    └── something.py

__init__.pyは空ファイル。

~/mypackage/core/main.py
class DoNothing:
    pass
~/mypackage/others/something.py
from mypackage.core.main import DoNothing

you = DoNothing()

① 全く違う場所から使おうと思ったら、sys.path.appendしないと無理!
② others/something.pyが使いたいからとmypackage/others/で使おうとしても、importでエラーが出てしまう!

解決

mypackage/の親ディレクトリ下で使えば行けます!

~/developing.py
from mypackage.core.main import DoNothing
from mypackage.others.something import you

print(isinstance(you, DoNothing))
output
True

最後に

誰かの何かのお役に立ったりしたら幸いです🥂

Discussion