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

app.py蟒蛇:从父目录导入全局变量

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开始。
这为什么有效? aaa如何在inner.py中导入?
为什么我们可以直接从位于父目录的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文件。我的回答几乎和我之前回答的人一样。你的问题也不清楚。