Python自定义包导入模块名称未在init上导入

Python自定义包导入模块名称未在init上导入,python,setuptools,python-packaging,Python,Setuptools,Python Packaging,我正在创建具有以下结构的自定义包: test_package │ README.md │ setup.py │ ├───my_package │ my_package.py │ __init__.py │ └───tests tests.py 导入我的\u包时,我必须使用 从我的\u包。我的\u包导入我的\u类 o=我的班级() 或 导入我的\u包 我的包。我的包。我的类(

我正在创建具有以下结构的自定义包:

test_package
    │   README.md
    │   setup.py
    │
    ├───my_package
    │       my_package.py
    │       __init__.py
    │
    └───tests
            tests.py
导入
我的\u包时
,我必须使用

从我的\u包。我的\u包导入我的\u类
o=我的班级()

导入我的\u包
我的包。我的包。我的类()
如何仅使用“从我的\u包导入我的\u类”,而不将导入添加到
\uuu init\uuuuuuuuuuuuuuuuuuuuuupy
?我不能那样做,因为

我正在使用设置工具

非常感谢

导入设置工具
导入我的\u包
以open(“README.md”、“r”)作为fh:
long_description=fh.read()
setuptools.setup(
#项目信息
name=我的包。\uuuuu标题\uuuuuuuu,
version=我的\u包。\u版本\u,
长\u描述\u内容\u type=“text/markdown”,
packages=setuptools.find_packages(),
install_requires=[“pygdbmi”],
python_需要='>=3.7',
#测验
测试套件='tests'
)
\uuuu init\uuuuu.py

from pygdbmi.gdbcontroller import GdbController

__version__ = '0.0.1'
__title__ = 'my_package'

class my_class:
    def __init__(self):
        print("my_class!!")
# ...

setuptools.setup(
    # Project information
    name=my_package.__title__,
    version=my_package.__version__,
    long_description_content_type="text/markdown",
    py_modules=['my_package'],  # replaces `packages=setuptools.find_packages(),`
    install_requires=["pygdbmi"],
    python_requires='>=3.7',
    # Tests
    test_suite='tests'
)
\uuuuuuuuuuuu版本='0.0.1'
__title_uuu=‘我的_u包’
my_package.py

从pygdbmi.gdbcontroller导入gdbcontroller
我的班级:
定义初始化(自):
打印(“我的班级!!”)
self.gdbmi=GdbController()
tests.py

from pygdbmi.gdbcontroller import GdbController

__version__ = '0.0.1'
__title__ = 'my_package'

class my_class:
    def __init__(self):
        print("my_class!!")
# ...

setuptools.setup(
    # Project information
    name=my_package.__title__,
    version=my_package.__version__,
    long_description_content_type="text/markdown",
    py_modules=['my_package'],  # replaces `packages=setuptools.find_packages(),`
    install_requires=["pygdbmi"],
    python_requires='>=3.7',
    # Tests
    test_suite='tests'
)
导入单元测试
从my_package.my_package导入my_类
为某些测试(unittest.TestCase)初始化:
def测试_构造器(自身):
self.assertionsnotnone(my_class())
如果uuuu name uuuuuu='\uuuuuuu main\uuuuuuu':
unittest.main()

为了说明我的评论

my_package.py

from pygdbmi.gdbcontroller import GdbController

__version__ = '0.0.1'
__title__ = 'my_package'

class my_class:
    def __init__(self):
        print("my_class!!")
# ...

setuptools.setup(
    # Project information
    name=my_package.__title__,
    version=my_package.__version__,
    long_description_content_type="text/markdown",
    py_modules=['my_package'],  # replaces `packages=setuptools.find_packages(),`
    install_requires=["pygdbmi"],
    python_requires='>=3.7',
    # Tests
    test_suite='tests'
)
setup.py

from pygdbmi.gdbcontroller import GdbController

__version__ = '0.0.1'
__title__ = 'my_package'

class my_class:
    def __init__(self):
        print("my_class!!")
# ...

setuptools.setup(
    # Project information
    name=my_package.__title__,
    version=my_package.__version__,
    long_description_content_type="text/markdown",
    py_modules=['my_package'],  # replaces `packages=setuptools.find_packages(),`
    install_requires=["pygdbmi"],
    python_requires='>=3.7',
    # Tests
    test_suite='tests'
)

你为什么不直接分发my_package.py而不把它放在文件夹中呢?