Python3相对导入不起作用

时间:2018-07-04 14:01:49

标签: python-3.x relative-import

我是python 3的新手。我试图在开发模式下运行百灵鸟示例http://github.com/lark-parser/lark,但是由于相对导入问题而被阻止。

lark
  |examples
  |     |
  |     |conf_lalr.py
  |
  |lark
  |  |
  |  |lark.py
     |
     |tools
     |    |
          |common.py

在conf_lalr.py中,有一行:     从云雀进口云雀 由于我想使用相对导入,因此我使用以下方法对其进行了更新:

1,从..lark.lark导入百灵鸟

Traceback (most recent call last):
  File "conf_lalr.py", line 16, in <module>
    from ..lark.lark import Lark
ValueError: attempted relative import beyond top-level package

2,从.lark.lark导入百灵鸟

Traceback (most recent call last):
  File "conf_lalr.py", line 16, in <module>
    from .lark.lark import Lark
ModuleNotFoundError: No module named '__main__.lark'; '__main__' is not a package

我从互联网上搜索了很多答案,包括stackoverflow。但是,没有一个起作用。

需要有人告诉原因。

2 个答案:

答案 0 :(得分:1)

您缺少将 init .py文件制作为python软件包的文件夹。 另外,对于第一部分,请参见thisthis

答案 1 :(得分:0)

要运行示例,您应该执行以下操作:

~$ cd lark

~/lark$ python -m examples.conf_lalr