如何创建具有不同 类 的 python 包而不导入每个包

How to create python package with different classes without importing each one

我在 Pypi 中创建了一个包并进行了以下设置。 假设我的包名为 "myproj"。 所以我把所有不同的文件放在 myproj/ 要使用它们,我必须做

from myproj.myclass1 import myclass1

我希望它能像

那样工作
from myproj import myproj

然后我可以使用来自不同 类 的所有函数,例如

myproj.class1func()
myproj.class2func()

我的设置

setup(
name="myproj",
version=VERSION,
description="PyProj package",
long_description=readme(),
long_description_content_type='text/x-rst',
url="",
author="",
author_email="",
license="MIT",
classifiers=[
],
keywords='myproj',
packages=["myproj"],
py_modules=[],
install_requires=["numpy", "matplotlib", "cvxopt", "pyswarm", "scipy", "typing", "pandas"],
include_package_data=True,
python_requires='>=3',
cmdclass={
    'verify': VerifyVersionCommand,
})

将您的 类(例如,myclass1myclass2)放入文件 myproj/__init__.py

# myproj/__init__.py
class myclass1:
    def __init__(self):
        self._thing1 = 1
    def doit(self):
        print('Hello from myclass1.')

class myclass2:
    def __init__(self):
        self._thing2 = 2
    def doit(self):
        print('Hello from myclass2.')

那么你可以这样做:

import myproj

c1 = myproj.myclass1()
c1.doit()
c2 = myproj.myclass2()
c2.doit()