对Python的恐惧

对Python的恐惧,python,import,module,package,Python,Import,Module,Package,我是python新手,我遇到了一个无法解决的问题 我的文件结构是: 在Criador.py上,我有几个函数,例如: def doSomething(): pass def doSomethingElse(): pass 我正在尝试在Controller.py文件上使用以下函数之一: 我做的第一件事是,在Controller.py上: import Controller.Criador 然后尝试将该函数用作: Controller.Criador.doSomething() 运行Contr

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

没有任何帮助,只是将错误更改为:

ImportError: cannot import name 'Criador'


有人能告诉我这件事吗?我正在使用PyCharm,当我声明导入时,它不会给我任何错误,只有当我运行文件时,如果Controller.pyCriador.py在同一文件夹中,你可以在Controller.py中执行此操作:

import Criador

Criador.doSomething()

当我尝试导入Criador时,PyCharm在Criador中用红色下划线标记,表示“没有名为Criador的模块”。但是,如果我运行这个程序,我不会出错。。。PyCharm疯了吗?或多或少,但有一些变通办法。检查。对我的主文件夹执行了此操作(它变成了一个蓝色文件夹),但它没有修复它,但之后我对项目中的所有文件夹执行了此操作,错误消失了!谢谢很高兴我能帮忙!我认为您需要在控制器文件夹中使用init.py根据我的研究,init.py在Python3中不再是必需的。您的文件夹名和文件名相同,这会造成问题。如果您是从同一目录下的模块导入,则不需要
\uuu init\uuuuuuuuuuuupy
,但如果您是这样从directory.module导入方法
导入的,则
目录
必须有一个
\uuu init\uuuuuuuuuuuuupy
,才能将其视为一个包。每次你得到
'Controller'不是一个包
错误是因为没有
\uuuu init\uuuuuuuuuy.py
我能够用Edgar的答案解决我的问题!不过还是要谢谢你的帮助
ImportError: cannot import name 'Criador'
ModuleNotFoundError: No module named 'Controller.Criador'; 'Controller' is not a package
ImportError: cannot import name 'Criador'
import Criador

Criador.doSomething()