web-dev-qa-db-ja.com

モジュール対パッケージ?

いつでもfrom 'x' import 'y'どちらが「モジュール」と見なされ、どちらが「パッケージ」であるかを考えていましたが、なぜそれが逆ではないのですか?

149
Dark Templar

Pythonモジュールは、単純にPythonソースファイルであり、クラス、関数、グローバル変数を公開できます。

別のPythonソースファイルからインポートされた場合、ファイル名は名前空間として扱われます。

Pythonパッケージは、Pythonモジュールのディレクトリです。

たとえば、/usr/lib/python/site-packagesに次のディレクトリツリーがあるとします。

mypackage/__init__.py <-- this is what tells Python to treat this directory as a package
mypackage/mymodule.py

だからあなたはそうするでしょう:

import mypackage.mymodule

または

from mypackage.mymodule import myclass
200
Yam Marcovic