2017-01-08 13 views
0

私は何かが分かりませんが、インポートは私をしばらく悩ましています。Djangoはサブディレクトリにファイルをインポートできません

私は大きなDjangoプロジェクトで、次のアプリケーションの構造を有する:

\reporting\ 
\reporting\__init__.py 
\reporting\<all other default django files> 
\reporting\utils\__init__.py 
\reporting\utils\base_file.py 
\reporting\utils\appname_reporting.py 

私は\reporting\views.pyappname_reportingをインポートしようとしています。

私はimport utils.appname_reportingfrom utils import appname_reporting、およびfrom .utils import appname_reportingを試しました。それらのすべてが私にエラー:ImportError: No module named 'appname_reporting'を与えます。

appname_reporting.pyをインポートするファイルはありません。そして、appname_reporting.pybase_file.pyを輸入してください。

更新

私はviews.pyにインポートするappname_reportingを得たが、今私はそれがbase_fileをインポートすることはできませんと言ってappname_reportingで壊れたインポートを持っています。そこに私は単にimport base_fileを持っていて、それは私のテストでは失敗します。私もimport .base_fileを試してみて失敗します。

+0

通常、完全なトレースバックは非常に重要です。 – thebjorn

答えて

0

PYTHONPATHに環境変数/reportingが必要です。あなたは相対的な輸入品を使用することができた後

import sys 
for p in sys.path: 
    print p 

の出力にそれが含まれていることを確認します。

appname_reporting.py: 
from . import base_file 

views.py 
from .utils import appname_reporting 

しかし、円形の輸入品に気をつけろ(例えば、あなたが__init__.pyファイルで何かをインポートしている場合) 。

あなたは冗長スイッチでのPythonを実行することができます:インポートされ、そのためにされているかを見るために

python -v views.py 

。それは、あなたが循環輸入を持っているかどうかを伝えます。

関連する問題