我在 dev 分支中创建了一个具有以下结构的包(在验证包安装正确之前不会合并到 main):
mypackage
|
|-- __init__.py
|-- setup.py
|-- requirements.txt
|-- module.py
|-- subpackage_one
|
|-- __init__.py
|-- module_ab.py
|-- class_aba
|-- class_abb
|-- module_ac.py
|-- function_aca
|-- subpackage_two
|
|-- __init__.py
|-- module_ba.py
|-- function_baa
附加信息:
- The
__init__.py
根目录下的文件和subpackage__two
都是空的
- The
__init__.py
文件输入subpackage_one
包含一些额外的初始化,其形式为from mypackage.subpackage_one.module_xx import class_xxx
(or function_xxx
)
- 我正在通过安装包
pip install git+https://github.com/organization/repo.git@dev
- 如果我位于包的根目录中,我可以按预期导入子模块
- setup.py 文件是:
import setuptools
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
setuptools.setup(
name='mypackage',
version='0.0.2',
author='author1, author2',
author_email='author1_email, author2_email',
description='My Package',
long_description=long_description,
long_description_content_type="text/markdown",
url='https://github.com/organization/repo',
packages=['mypackage'],
install_requires=['requests'],
)
import pkgutil
for i in pkgutil.iter_modules(mypackage.__path__):
print(i)
I see:
ModuleInfo(module_finder=FileFinder('/path/to/package/mypackage'), name='module', ispkg=False)
事实上,子包不在 mypackage 文件夹中。
如何让子包与包一起安装?