Python3 相对导入无效

Python3 Relative Import Is not Working

我是 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

我从网上搜索了很多答案,包括Whosebug。但是,none 正在工作。

需要有人告诉为什么。

您缺少 init.py 文件来使文件夹成为 python 包。 对于第一部分,请参阅 this or this

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

~$ cd lark

~/lark$ python -m examples.conf_lalr