如何在 python3 中将 python 个包和子包打包为单个包

how to pack python packages and sub-packages as single package in python3

我正在尝试创建具有以下结构的 python 包。当我尝试创建包 testproject 时,它正在成功创建并成功上传到 https://test.pypi.org/legacy/

testproject/
    testproject/
        Core/
            __init__.py
            BaseModel.py
        lib/
            __init__.py
            RunModel.py
        __init__.py
        RunWorkflow.py
    LICENSE
    README.md
    setup.py   

当我尝试将它下载到我的新环境时,它正在将正确的版本下载到我的环境,当我 运行 conda list 我可以看到正确版本的安装包。

实际问题是当我尝试 运行 help('modules') 命令时,它 returns 所有子包 [Core 和 lib] 也是。当我看到其他软件包时,例如 osnumpyscikit-learn。它没有在 help('modules') 中显示其子包。

我怎样才能避免这种情况,我做错了什么吗?

请在下面找到我的setup.py。

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name='Test-Project-pypi',
    version='0.0.1',
    author="Manikandan Jeyabal",
    author_email="ManikandanJeyabal029@gmail.com",
    description="My longdestription",
    long_description=long_description,
    long_description_content_type="text/markdown",
    packages=setuptools.find_packages(),
    classifiers=[
        "Development Status :: 3 - Alpha",
        "Intended Audience :: Developers",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3.4",
        "Programming Language :: Python :: 3.5",
        "Programming Language :: Python :: 3.6",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    install_requires=[
        "numpy <=1.17.4", "pandas", "scikit-learn >= 0.21.3, <= 0.22"
    ],
    python_requires='>=3.7'
 )

通过在 'testproject'

下的 Main init.py 中添加以下代码解决了这个问题
from . import Core
from . import lib