Phát triển gói Python
James Fulton
Climate informatics researcher
import mysklearn
help(mysklearn.preprocessing)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module 'mysklearn' has no
attribute 'preprocessing'
Cây thư mục cho package có subpackage
mysklearn/
|-- __init__.py
|-- preprocessing
| |-- __init__.py
| |-- normalize.py
| |-- standardize.py
|-- regression
| |-- __init__.py
| |-- regression.py
|-- utils.py
import mysklearn.preprocessing
help(mysklearn.preprocessing)
Help on package mysklearn.preprocessing in
mysklearn:
NAME
mysklearn.preprocessing - A subpackage
for standard preprocessing operations.
Cây thư mục cho package có subpackage
mysklearn/
|-- __init__.py
|-- preprocessing
| |-- __init__.py
| |-- normalize.py
| |-- standardize.py
|-- regression
| |-- __init__.py
| |-- regression.py
|-- utils.py
import mysklearn.preprocessing
help(mysklearn.preprocessing.normalize)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module
'mysklearn.preprocessing' has no attribute
'normalize'
Cây thư mục cho package có subpackage
mysklearn/
|-- __init__.py
|-- preprocessing
| |-- __init__.py
| |-- normalize.py
| |-- standardize.py
|-- regression
| |-- __init__.py
| |-- regression.py
|-- utils.py
import mysklearn.preprocessing.normalize
help(mysklearn.preprocessing.normalize)
Help on module mysklearn.preprocessing.normalize
in mysklearn.preprocessing:
NAME
mysklearn.preprocessing.normalize - A module
for normalizing data.
Cây thư mục cho package có subpackage
mysklearn/
|-- __init__.py
|-- preprocessing
| |-- __init__.py
| |-- normalize.py
| |-- standardize.py
|-- regression
| |-- __init__.py
| |-- regression.py
|-- utils.py
mysklearn/__init__.py
Import tuyệt đối
from mysklearn import preprocessing
Import tương đối
from . import preprocessing
Cây thư mục cho package có subpackage
mysklearn/
|-- __init__.py <--
|-- preprocessing
| |-- __init__.py
| |-- normalize.py
| |-- standardize.py
|-- regression
| |-- __init__.py
| |-- regression.py
|-- utils.py
Ta đã import preprocessing vào mysklearn
import mysklearn
help(mysklearn.preprocessing)
Help on package mysklearn.preprocessing in
mysklearn:
NAME
mysklearn.preprocessing - A subpackage
for standard preprocessing operations.
Nhưng preprocessing chưa liên kết với normalize
import mysklearn
help(mysklearn.preprocessing.normalize)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: module
'mysklearn.preprocessing' has no attribute
'normalize'
mysklearn/preprocessing/__init__.py
Import tuyệt đối
from mysklearn.preprocessing import normalize
Import tương đối
from . import normalize
Cây thư mục cho package có subpackage
mysklearn/
|-- __init__.py
|-- preprocessing
| |-- __init__.py <--
| |-- normalize.py
| |-- standardize.py
|-- regression
| |-- __init__.py
| |-- regression.py
|-- utils.py
import mysklearn
help(mysklearn.preprocessing.normalize.normalize_data)
Help on function normalize_data in module
mysklearn.preprocessing.normalize:
normalize_data(x)
Normalize the data array.
mysklearn/preprocessing/__init__.py
Import tuyệt đối
from mysklearn.preprocessing.normalize import \
normalize_data
Import tương đối
from .normalize import normalize_data
Cây thư mục cho package có subpackage
mysklearn/
|-- __init__.py
|-- preprocessing
| |-- __init__.py <--
| |-- normalize.py
| |-- standardize.py
|-- regression
| |-- __init__.py
| |-- regression.py
|-- utils.py
import mysklearn
help(mysklearn.preprocessing.normalize_data)
Help on function normalize_data in module
mysklearn_imp.preprocessing.normalize:
normalize_data(x)
Normalize the data array.
Trong normalize.py
Import tuyệt đối
from mysklearn.preprocessing.funcs import (
mymax, mymin
)
Import tương đối
from .funcs import mymax, mymin
Cây thư mục cho package có subpackage
mysklearn/
|-- __init__.py
|-- preprocessing
| |-- __init__.py
| |-- normalize.py <--
| |-- funcs.py
| |-- standardize.py
|-- regression
| |-- __init__.py
| |-- regression.py
|-- utils.py
Một exception tùy chỉnh MyException nằm trong utils.py
Trong normalize.py, standardize.py và regression.py
Import tuyệt đối
from mysklearn.utils import MyException
Import tương đối
from ..utils import MyException
Cây thư mục cho package có subpackage
mysklearn/
|-- __init__.py
|-- preprocessing
| |-- __init__.py
| |-- normalize.py <--
| `-- standardize.py <--
|-- regression
| |-- __init__.py
| |-- regression.py <--
`-- utils.py
from . import modulemodulefrom .. import modulemodulefrom .module import function functionfrom ..subpackage.module import functionmodule của subpackage đó, import functionPhát triển gói Python