相对进口如何运作?

时间:2017-04-07 12:04:08

标签: python django

我有一个像这样的目录结构

project/
        __init__.py
        greetings.py
        script.py

greetings.py

def hello():
    print('Hello')

script.py

from . import greetings

greetings.hello()

当我执行python script.py后发生错误

Traceback (most recent call last):
  File "script.py", line 1, in <module>
    from . import greetings
ImportError: cannot import name 'greetings'

如果我在import greetings中使用script.py,一切正常。 但为什么相对导入会出错? 当我在django工作时在视图中使用from . import models时,为什么它会起作用。

2 个答案:

答案 0 :(得分:0)

请遵循python中的Module vs Package概念。

在这里,您创建了一个包,因此您必须将包导入为: -

from project import greetings

答案 1 :(得分:0)

此处相对导入将作为

from .greetings import *

OR

import greetings

greetings应位于同一文件夹