ではあり__init__.py
ませんinit.py
。インポートできるようにするには、階層内の各ディレクトリにディレクトリが含まれていることを確認してください。
編集:私はそれを再現することができました。ディレクトリ構造は次のとおりです。
cesar @ cesar-laptop:/ tmp /asdasd$ツリー
。
`-myapp
|-__init__.py
|-モデル
| |-__init__.py
| `-models.py
|-スクリプト
| |-data.py
| `-__init__.py
`-テスト
|-__init__.py
`-tests.py
data.py
問題を絞り込むために、の最初に次のコードを配置しました。
import sys
import pprint
pprint.pprint(sys.path)
from myapp.models.models import *
OPが示した方法で実行するとdata.py
、ImportErrorが発生します。
cesar @ cesar-laptop:/tmp/asdasd$ python myapp / scripts / data.py
['/ tmp / asdasd / myapp / scripts'、
'/usr/lib/python2.6'、
'/usr/lib/python2.6/plat-linux2'、
'/usr/lib/python2.6/lib-tk'、
-スキップしました-
'/usr/local/lib/python2.6/dist-packages']
トレースバック(最後の最後の呼び出し):
ファイル"myapp/ scripts / data.py"、6行目、
myapp.models.modelsからインポート*
ImportError:myapp.models.modelsという名前のモジュールがありません
しかし、この方法は魅力のように機能します。
cesar @ cesar-laptop:/ tmp / asdasd $ python -m myapp.scripts.data
[''、
'/usr/lib/python2.6'、
'/usr/lib/python2.6/plat-linux2'、
'/usr/lib/python2.6/lib-tk'、
-スキップしました-
'/usr/local/lib/python2.6/dist-packages']
の最初のエントリの違いに注意してくださいsys.path
。