私は、次のような構造を持つPythonの3プロジェクトがあります。Pythonで名前空間パッケージを作成するには?
project/
|
+--root/
|
+--__init__.py
|
+--sub/
|
+--__init__.py
|
+--actualcode.py
私は別のプロジェクトに関連する他のlibsとの共通の名前空間の私のlib株式ように、「名前空間パッケージ」を使用したいが。 import文は次のようになります。
from root.sub.actualcode import something
ルートフォルダに__init__.py
ファイルには、名前空間のパッケージを作成するには、次のステートメントが含まれます。
from pkgutil import extend_path
__path__ = extend_path(__path__, __name__)
をしかし、私はroot.sub
をインポートするとき、私は、コードを参照することはできません。それは私が書くときにのみ動作します:
from sub.actualcode import something # doesn't work with "root.sub..."!
私は名前空間としてroot
使用するために何をすべきか?
あなたのパッケージのsetup.pyに名前空間が正しく定義されていますか? –
distutilsには、setup.pyに名前空間を設定するための属性がありません。 http://docs.python.org/py3k/distutils/setupscript.html – deamon
誰もdistutilsを気にしません。 setuptoolsやdistributeを入手する方法は –