Как создать пакет python с разными классами без импорта каждого из них - PullRequest
0 голосов
/ 08 мая 2020

Я создал пакет в 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,
})

1 Ответ

1 голос
/ 08 мая 2020

Поместите свои классы (например, myclass1 и myclass2) в файл 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()
...