1

私はこのパッケージ構造を持っています:

widget/
    __init__.py
    core.py
    extension.py

__init__.py は空です。

core.py には次のものが含まれます。

import widget.extension as extension

動作しますが、パッケージを回避して、グローバル パスからインポートしているだけのように感じます (つまり、パッケージをよみがえらせるだけです)。私import extensionがcore.pyにいるだけでは機能しません。これは問題ですか?そもそも私が間違っているのでしょうか?代わりに、これらのモジュールの両方を にプルする必要があります__init__.pyか?

4

1 に答える 1

1

Python 3 を使用していると思います。Python 2 では、import extensionPython 2 が最初にローカルの相対インポートを探してから、グローバルな絶対参照を探すように機能します。

さらに 2 つのオプションがあります。

from widget import extension

from . import extension

後者は現在のwidgetパッケージに相対的なインポートを行うため、すべての内部インポートを更新することなくパッケージの名前を変更できます。何を使うかはスタイルとテイストの問題です。

于 2013-07-29T11:50:13.230 に答える