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:没有名为“组件”的模块
我已将一个空的__init__.py
文件添加到包含模块以及顶级包目录的目录中。
答案 0 :(得分:2)
好吧,导入需要顶层包在Python PATH(sys.path
)中可用。
要使其正常运行,您应该:
components
的目录将.
添加到Python路径:
export PYTHONPATH='.'
启动脚本:
python components/extract/python3/extract.py
在我的系统上,它成功显示:
Found me