Python 3.x 如何在python3中将python包和子包打包为单个包

Python 3.x 如何在python3中将python包和子包打包为单个包,python-3.x,setuptools,packaging,python-packaging,Python 3.x,Setuptools,Packaging,Python Packaging,我正在尝试创建一个结构如下的python包。当我尝试创建包testproject时,它正在成功创建并成功上载到 当我尝试将其下载到我的新环境时,它正在将正确的版本下载到我的环境中,当我运行conda list时,我可以看到安装的软件包的正确版本 实际的问题是,当我试图运行help('modules')命令时,它也会返回所有的子包[Core和lib]。当我看到其他软件包时,例如os,numpy,scikit learn。它没有在帮助(“模块”)中显示其子包。 我怎样才能避免这种情况,我在这里做错了

我正在尝试创建一个结构如下的python包。当我尝试创建包testproject时,它正在成功创建并成功上载到

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

实际的问题是,当我试图运行help('modules')命令时,它也会返回所有的子包[Core和lib]。当我看到其他软件包时,例如osnumpyscikit learn。它没有在帮助(“模块”)中显示其子包。

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

请在下面找到我的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'
 )

导入设置工具
以open(“README.md”、“r”)作为fh:
long_description=fh.read()
setuptools.setup(
name='Test-Project-pypi',
version='0.0.1',
作者=“Manikandan Jeyabal”,
作者_电子邮件=”ManikandanJeyabal029@gmail.com",
description=“My Longdesription”,
长描述=长描述,
长\u描述\u内容\u type=“text/markdown”,
packages=setuptools.find_packages(),
分类器=[
“发展状况:3-阿尔法”,
“预期受众::开发者”,
“编程语言::Python::3”,
“编程语言::Python::3.4”,
“编程语言::Python::3.5”,
“编程语言::Python::3.6”,
“许可证::OSI已批准::MIT许可证”,
“操作系统::独立于操作系统”,
],
安装所需的=[

“numpy=0.21.3,通过在Maininit.py中的“testproject”下添加以下代码解决了此问题”

from . import Core
from . import lib

显示您的
setup.py
。或者更好的是显示整个存储库。在任何情况下,您都可以在PyPI上发布代码,那么为什么要将其隐藏在此处?您在
帮助(“模块”)的输出中看到了什么
这让你很困扰?好像你看到了
testproject.Core
testproject.lib
,真的是这样吗?Hi@phd我在问题中附上了我的setup.py,请查找。Hi@sinoroc,很好地描述了我的问题。我在testproject中有Core包,但不访问testproject,我可以访问Core-lik中的模块它应该可以像
form testproject.Core.BaseModel import BaseModel
一样访问,但是在我的例子中,我可以直接从
Core.BaseModel import BaseModel
访问它,它似乎
Core
lib
成为顶级包。但是我不知道这
setup.py
是怎么可能的。
from . import Core
from . import lib