__初始化py找不到本地模块

2024-04-18 05:51:12 发布

您现在位置:Python中文网/ 问答频道 /正文

借用http://pythoncentral.io/how-to-create-a-python-package/上的简化示例

我有一个类似的文件结构,如下所示,其中maluminals.py和Birds.py使用相同的名称定义类:

Project/
  Animals/
    __init__.py
    Mammals.py
    Birds.py

当在Project/目录中运行ipython解释器并且__init__.py为空时,以下操作有效:

from Animals.Mammals import Mammals
x = Mammals()
x.printMammals()

我希望能够写from Animals import Mammals,而不是from Animals.Mammals import Mammals。我相信这样做的方法是使__init__.py文件的内容如下:

from Mammals import Mammals
from Birds import Birds

但是,完成此操作后,在类似的Project/来源的ipython解释器中,以下输入将产生错误:

In [1]: from Animals import Mammals
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-6d651848af9b> in <module>()
----> 1 from Animals import Mammals

/Users/username/Project/Animals/__init__.py in <module>()
----> 1 from Mammals import Mammals
      2 from Birds import Birds

ImportError: No module named 'Mammals'

我觉得我犯了一个简单的错误,但是找不到。谢谢你的帮助!


Tags: 文件infrompyimportprojectinit错误
1条回答
网友
1楼 · 发布于 2024-04-18 05:51:12

Animals目录中的__init__.py中输入以下代码。

Python3.x:

from .Mammals import Mammals
from .Birds import Birds

在2.x上:

from __future__ import absolute_import
from .Mammals import Mammals
from .Birds import Birds

相关问题 更多 >