【发布时间】:2020-09-21 14:41:14
【问题描述】:
我目前正在处理一个项目,其中主文件位于一个目录中,子目录中还有一些附加文件:
project
|- folder
| |- __init__.py
| |- file1.py
| |- file2.py
| |- file3.py
|- main.py
初始化文件为空。
就我而言,我想用尽可能少的代码将所有文件导入我当前的 main.py。关键是:
作品
from folder.file1 import somefunction1
from folder.file2 import somefunction2
somefunction1()
somefunction2()
作品
from folder import file1
from folder import file2
file1.somefunction1()
file2.somefunction2()
不工作
import folder
folder.file1.somefunction1()
folder.file2.somefunction2()
AttributeError: module 'folder' has no attribute 'file1'
我明白错误消息的含义,但不知道为什么会出现。在我的第一个示例中,我可以调用 folder.file 和 folder.file2 作为属性,但在我的最后一个示例中,我不能?
不幸的是,我只发现了类似的问题,询问如何从一般文件夹中导入文件,但没有关于这个特定问题。
Python 在后台到底在做什么,有没有办法解决我的问题?
【问题讨论】:
-
您的
__init__.py中有什么内容?我认为为了使第三个工作,在__init__.py中您必须包含import file1和import file2。 -
它目前是空的,插入
import file1给我一个ModuleNotFoundError: No module named 'file1'(是的,我的文件被命名为完全相同:)
标签: python python-3.x import python-import