【发布时间】:2019-04-03 02:56:22
【问题描述】:
我是 python 新手,遇到了这个我无法解决的问题。
我的文件结构是:
在 Criador.py 我有几个函数,例如:
def doSomething():
pass
def doSomethingElse():
pass
我试图在 Controller.py 文件中使用其中一个函数:
我做的第一件事是在 Controller.py 上:
import Controller.Criador
然后尝试将该功能用作:
Controller.Criador.doSomething()
运行Controller.py后,我得到了这个错误:
ModuleNotFoundError: No module named 'Controller.Criador'; 'Controller' is not a package
我尝试了其他一些方法,例如:
from . import Criador
或
from Controller.Criador import doSomething
或
from Controller import Criador
没有任何帮助,只是将错误更改为:
ImportError: cannot import name 'Criador'
和
ModuleNotFoundError: No module named 'Controller.Criador'; 'Controller' is not a package
和
ImportError: cannot import name 'Criador'
有人可以告诉我这个吗?我正在使用 PyCharm,当我声明导入时它不会给我任何错误,只有当我运行文件时
【问题讨论】:
-
我认为你的控制器文件夹中需要一个 init.py
-
根据我的研究,python 3 中不再需要 init.py。
-
您的文件夹名和文件名相同,这会造成问题。如果您从同一目录中的模块导入
__init__.py不是必需的,但如果您像这样导入from Directory.Module import method那么Directory必须有一个__init__.py才能被视为一个包。每次出现'Controller' is not a package错误都是因为没有__init__.py -
我能够用 Edgar 的回答解决我的问题!不过还是谢谢你的帮助
标签: python import module package