如何修复“ ImportError:尝试相对导入,但没有已知的父包”

时间:2019-06-06 02:50:09

标签: python python-packaging

我正在创建一个遵循以下结构的python包:

project
├── package
│   ├── __init__.py
│   ├── __main__.py
│   └── subpackage01
│       ├── functions01.py
│       ├── __init.py__
│       └── subpackage02
│           ├── functions02.py
│           ├── __init__.py
├── requirements.txt
├── setup.py

__main__.py中,我有from .subpackage01.functions01 import foo,这给了我错误ImportError: attempted relative import with no known parent package

如果我删除subpackage01之前的点,它可以工作,但在我的pypi包中停止工作。删除点,构建包并上载它会给我一个错误ModuleNotFoundError: No module named 'subpackage01'

我不明白为什么,因为在functions01.py中,我有subpackage02的相对导入,这没问题。同样,我不知道为什么在构建软件包时而不在本地开发环境中使用它。

1 个答案:

答案 0 :(得分:0)

尝试from subpackage01.functions01 import foo,方法是从subpackage01删除前导点,这是一个微妙的区别。