⬜
Python パッケージ開発の気の抜けたtip(s)
こんにちは、沙代です。
ちょっと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