セットアップ スクリプトを使用して最初の Python パッケージを作成したばかりですが、この動作が正常かどうか疑問に思っています。アクセスしたいクラスを含む1つのモジュールで構成されています。プロジェクトの構造は次のようになります。
.
|
+ -- __init__.py
+ -- setup.py
my_package
|
+ __init__.py
+ my_class.py
__init__.py
は常に空です。
インストールすると、これは私が期待する動作です。
>>> import my_package
>>> my_class.MyClass()
A new object is born!
代わりに、これを行う場合にのみそれを行うことができます:
>>> from my_package import my_class
>>> my_class.MyClass()
A new object is born!
関連する場合、パッケージとクラスファイルの名前は同じです。これはパッケージデザインが悪いのでしょうか?from my_class import *
を入れることで問題を回避できることがわかりましたが__init__.py
、インポート名前空間にとどまっていたとしても、そのようなステートメントを使用するのは嫌いです。