Topics we discuss here
Why we need a package ?
How to create a package?
Package?
Consider you have a bunch of files which is having the common functionality or logic implemented in it , when we want to use it in our existing code either we need to point out the folder by sys.path.append or we need to copy the whole files into current directory
sys.path.append("path of common files ")
For avoiding this we need package
How to create a package?
Here We need to follow a structure, if a folder contains a dunder init we call it as a package in the same we need to directories and a setup.py and remaining other common py files
package_directory(article)
| package(article)
| __init__.py
| pipeline_selector.py
| executor.py
| submodule(constants)
| key_constants.py
| README.md
| setup.py
# pipeline_selector.py
def pipelines(details):
print(details)
#executor.py
from article.pipline_selector import pipeline
def execute():
pipeline("i am from executor")
When ever we import a function inside other file please use relative import like above
setup.py example structure
import setuptools
from setuptools import find_packages
from os import path
with open("README.md", "r") as fh:
long_description = fh.read()
setuptools.setup(
name="article", # Replace with your own username
version="0.0.1",
author="Venkatesh",
author_email="email.com",
description="example lib",
long_description=long_description,
long_description_content_type="text/markdown",
url="#",
packages=setuptools.find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
install_requires=[
'pandas', # it will install required packages which are used inside the programming
'xlrd',
'numpy',
'pymongo',
'pypyodbc',
'pymysql',
'boto3'
],
python_requires='>=3.6',
)
command
# go to the directory where setup.py present and execute
python3 setup.py install
After installation we can use this package anywhere we need like
from article import executor
executor.execute()