Python 3.6
我编写了一些组件,现在正在尝试在其中一个组件中导入另一个组件。
下面是我的项目结构:
.
└── components
├── __init__.py
├── extract
│ └── python3
| ├── __init__.py
│ └── extract.py
└── transform
└── python3
├── __init__.py
└── preprocess.py
extract.py
from components.transform.python3.preprocess import my_function
if __name__ == '__main__':
my_function()
preprocess.py
def my_function():
print("Found me")
当我运行 python components/extract/python3/extract.py
命令时,出现以下错误:
ModuleNotFoundError: 找不到名为 'components' 的模块
我已在包含模块的目录以及顶层包目录中添加了一个空的 __init__.py
文件。
__init__.py
文件。Python认为components
是一个模块(即.py
文件),而您显然希望将其视为包(可以使用“.”符号访问其中的模块)-为此,它需要包含一个__init__.py
文件。 - Robin Zigmond__init__.py
文件添加到包含模块的目录和顶层目录中。 - Jonathan Porterpython components/extract/python3/extract.py
时,你在哪个目录下?是"."
吗? - Alasdairtransform
和extract
目录仍然缺少__init__.py
文件,因此我预计现在的错误应该是“没有名为'transform'的模块。”您现在得到的确切错误文本是什么? - Robin Zigmond