用 idea 运行 Python 失败,同级目录下的模块无法导入?

14 天前
 chenzw2

项目结构如下:

test.py 内容:

from animal import Animal

if __name__ == "__main__":
    animal = Animal("小黑")
    animal.eat("骨头")

init.py 内容:

class Animal:

    # 构造方法
    def __init__(self, name):
        self.name = name

    def eat(self, food):
        self.food = food

运行 test.py 报错:

Traceback (most recent call last):
  File "C:\Users\xxx\IdeaProjects\python-samples\test.py", line 1, in <module>
    from animal import Animal
ModuleNotFoundError: No module named 'animal'

使用 IDEA 运行 python 是否还需要额外的配置,同目录下的模块无法引入...

825 次点击
所在节点    Python
9 条回复
darcyC
14 天前
不是的哦。你需要把 init.py 这个文件名改成 animal.py 哦。不太确定是不是你不小心打错了(试问何来的 animal ?)
你可以试着把 from animal import Animal 改成 from init import Animal 哦。
skyrim61
14 天前
from init import Animal
darcyC
14 天前
比方说你看,你 test.py 里写了 from animal import Animal 。

这个意思是从模块 animal.py 里导入 Animal 。

然后你接下去用的时候就可以写 a = Animal() 等等了(注意不要用同一个名字哦)
nixgnauhcuy
14 天前
用法错了,按你的项目结构,应该是
``` python
from init import Animal
```
cherbium
14 天前
按照你的想法,你应该要从 init 里面导入吧
chenzw2
14 天前
sorry ,图片没放进去,项目结构如下所示
superrichman
14 天前
这样
from .animal import Animal
Sawyerhou
14 天前
test.py 拿到 animal 文件夹外,放到 basic 文件夹下

或(不推荐)
from __init__ import Animal
blackshadow
14 天前
为啥代码要写在__init__.py 里? 这文件不是做包内文件访问权限用的吗? 正常是这个文件是空文件,然后你的 Animal 类 animal.py

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1048994

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX