我有一个带有布局的 Python 项目
setup.py
foobar/
__init__.py
foo.py
bar/
__init__.py
foobar/__init__.py
读的地方
from . import foo
from . import bar
和setup.py
from setuptools import setup
setup(
name='foobar',
version='0.0.1',
packages=['foobar'],
)
从源目录执行import foobar
时,一切都按预期工作。但是,通过 pip install .
安装软件包时,未安装子文件夹 bar/
,从而导致导入错误
ImportError: cannot import name bar
有什么提示吗?
显然要包含子包,您需要find_packages()
:
from setuptools import setup, find_packages
setup(
name='foobar',
version='0.0.1',
packages=find_packages()
)
在安装工具文档中也建议这样做。