如何创建具有不同 类 的 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,
})
将您的 类(例如,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()
我在 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,
})
将您的 类(例如,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()