我正在创建一个遵循以下结构的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
的相对导入,这没问题。同样,我不知道为什么在构建软件包时而不在本地开发环境中使用它。
答案 0 :(得分:0)
尝试from subpackage01.functions01 import foo
,方法是从subpackage01删除前导点,这是一个微妙的区别。