开发新程序包并获取ModuleNotFoundError:未命名模块

时间:2019-05-15 23:20:09

标签: python python-3.x

我正在编写一个小应用程序,我想创建一个包含一小类类的模块,但是当我尝试从主应用程序中导入类时,出现错误:

 my_project python3 main.py 
1
Traceback (most recent call last):
  File "main.py", line 2, in <module>
    import receivers
  File "/home/mario/Documents/python/my_project/receivers/__init__.py", line 2, in <module>
    from icinga import Icinga
ModuleNotFoundError: No module named 'icinga'

项目中的文件为:

├── main.py
└── receivers
    ├── icinga.py
    ├── __init__.py

其中main.py

#!/usr/bin/env python
import receivers

icinga = receivers.icinga.Icinga()

文件receivers/icinga.py

class Icinga:

    def __init__(self):
        print("I'm Icinga!")

文件receivers/__init__.py

print('1')
from icinga import Icinga
print('2')

有人可以告诉我我做错了什么吗?

预先感谢

1 个答案:

答案 0 :(得分:0)

如果只想导入Icinga类,则可以按照

from receivers.icinga import Icinga

如果要在接收方上调用import语句,则应将第二行的 init .py更改为:

from .icinga import Icinga

我在这里重现了您的问题,并能够这样解决。

编辑:

第二件事(在__init__.py上),您可以在main.py上将其调用为:

import receivers
receivers.icinga.Icinga()