2016-05-03 6 views
1
applications/ 
    app.py 
    extensions.py 
    controllers/ 
     __init__.py 
     inner.py 

app.pyのpython:親ディレクトリからのインポートグローバル変数

import inner 
from extensions import aaa 
inner.test() 

extensions.py

import os 
aaa = os.system 

__init__.py

from inner import * 

inner.py
from extensions import aaa 
def test(): 
    aaa('pwd') 

私のプロジェクトの構造とコードは上記のとおりで、プログラムはapp.pyから始まります。
これはなぜ機能しますか? inner.pyではどのようにaaaをインポートしますか?
親ディレクトリにあるextensions.pyから直接インポートできるのはなぜですか?

答えて

0

「親ディレクトリ」からインポートしていません。applications/からインポートしています。そのapplications/が親ディレクトリになるのは偶然です。

+0

申し訳ありませんが、まだ分かりません。 'applications /' –

+0

から直接インポートできるのはなぜなのですか。それは 'sys.path'にあるので、インポートできるディレクトリと同じです。 –

+0

inner.pyのimport文は、app.pyのimport文と同じsys.pathを使用しますか? –

0

どの.pyをインポートするか、どのディレクトリのサブフォルダをインポートするかによって異なります。 Pythonでインポートすると、その.pyファイルは同じフォルダまたはサブフォルダディレクトリになければなりません。 extensions.pyファイルのディレクトリをグローバル変数をインポートする.pyファイルに変更してください。私の答えは私の前で答えた人とほぼ同じです。あなたの質問も明確ではありません。