×

Python Packages

A package is a collection of Python modules that share a similar namespace and are generated by putting all of the modules in a single directory with certain special files like _init .py.

For a folder containing several modules like.py files to be recognized as a package in a directory structure, a special file called _init .py must also be stored in the folder, even if the file _init .py is empty. A library, on the other hand, can contain one or more packages and sub-packages.

Structure of a Package

Because python packages are simply collections of modules with a common namespace, this namespace is formed by creating a directory that contains all relevant modules. One of the things one should keep in mind is that - Packages are all directories that include multiple.py modules. A _init .py file, even if empty, must be present in a folder containing Python files for the folder to be recognized as a package.

Here is a figure explaining the same;

Python Packages

A folder's _init .py file shows that it is an importable Python package; otherwise, a folder is not regarded as a Python Package.

Procedure for Creating Packages

To create a package, you must follow a certain procedure, as discussed below.

1.    Make a Decision Regarding the Package's Basic Structure

It means you should know what your package's name will be (i.e., a directory/folder with that name will be created) and what modules and subfolders (to act as sub-packages) will be included.

For instance, let’s create a package named asPackageNewwith structure as shown below;

Python Packages

2.    Create a Directory Structure with Folders Labelled with Package and Subpackage Names.

As shown in the preceding example, we established a folder called PackageNew. We construct files/modules, i.e..py, files and subfolders with their own.py files inside this folder.

3.    In the Package and SubpackageFolders, Create _init .pyFiles.

Remember that Python will not check for submodules inside that directory if the _init .py file is missing; thus, efforts to import the module will fail.

4.    Connect it to Your Python Installation.

Once your package directory is ready, you can associate it with Python by adding it to the current Python distribution's site-packages folder.

In Python, you can only import a library and package if it is tied to its site-packages folder.

  • To check the path of the python site-packages folder, type the following two commands one after the other on the python prompt and try to locate the path of the site-packages folder:

    import sys
    print(sys.path)


    PYTHONPATH determines the directories that the Python interpreter will look at when importing modules, and the sys.path attribute provides vital information about PYTHONPATH.
  • Once you've determined the location of the site-packages folder, the simplest method is to copy your own package folder and paste it there. (But one should remember that this method is not considered the usual practice.)

    We simply opened the site-packages folder on our Windows installation and pasted the entire PackageNew folder.

5. Your package folder has now become a python library, allowing you to import its modules and utilize its functions after moving it into the site-packages folder of your current Python installation.

Note: The site-packages directory is the default target directory for all installed Python packages.

  • The Python interpreter recognizes the folder as a package using __init.py. It also defines which modules should have their resources imported.

Installing a Python Package

There are some packages that are in the standard library; the Python Package Index, sometimes known as PyPI, is the official repository for locating and downloading third-party packages. To install packages from PyPI, use the pip package installer:

$ pip install <name of the package>

Pip is a Python package manager that can install Python packages from various sources, including PyPI.

The conda command can be used to install Python packages if you installed Python with Anaconda or MinicondaTo install a Python package or module, type the following code in Anaconda Prompt.

$ conda install <name of the module>

Conda is simple to use, but it lacks the versatility of pip. If conda fails to install a package, you can always use pip.

Importing Modules

The import Statement:

The import statement makes the contents of the module available to the caller. As shown below, the import statement can be written in many forms.

The simplest form:

import<module_name>

A single import statement can contain many comma-separated modules:

import<module_name>[,<module_name>...]

Example:

Let's pretend we haven't installed any packages yet, do not worry cause Python comes with a vast library of pre-installed packages named the Python Standard Library. It contains capabilities for various tasks, including text processing and math. Let's have a look at the second option:

import math

  • It should be noted that this does not give the caller immediate access to the module's contents. Each module has its own private symbol table, which serves as the global symbol table for all objects in the module. As previously stated, a module defines its own namespace.
  • The import <modulename> statement merely adds <modulename> to the caller's symbol table. The private symbol table of the module stores the objects declared in the module.
  • Objects in the module are only accessible from the caller when prefixed with <module name> via dot notation.

Assume you've generated a file called module1.py that contains the following code:

array1 = [150, 250,350, 450]
string1 = "Python packages are fun to read and experiment with."


def function1(argument):
    print(f'argument = {argument}')


class cls1:
    pass

In module1.py, several objects are defined like:

  • array1 à that is an array.
  • function1() à that is a function.
  • cls1 à that is a class.
  • string1 à that is a string.

Here in the code below, after the following import statement, module1 is placed into the local symbol table. Thus, module1 has meaning in the caller’s local context:

>>>importmodule1
>>>module1
<module 'module1' from 'C:\\Users\\kitty\\Documents\\Python\\doc\\module1.py'>


String1 and function1, on the other hand, are stored in the module's private symbol table and have no local value.


>>>string1
Python Packages

>>>function1('python')

Python Packages

As you can see, therefore, the names of objects declared in the module must be prefixed by module1 to be accessed in the local context, as shown below;

>>>module1.string1

‘Python packages are fun to read and experiment with.’

>>>module1.function1('python')
argument = python

from <module_name> import <name(s)>

Individual objects from the module can be imported directly into the caller's symbol table using a different form of the import statement:

from <module_name> import <name(s)>

Following the execution of the above statement, the caller's environment can refer to <name(s)> without the <module name> prefix.

For example: if you want to use only the log function from the math module, then you can code as given below,

>>> from math import log

from <module_name> import <name> as <alternate_name>

Individual objects can also be imported, but they must be entered into the local symbol table with alternate names.

from <module_name> import <name> as <alternate_name>[, <name> as <alternate_name> …]

This allows names to be entered directly into the local symbol table but tries to avoid conflicts with previously used names.

Example:

>>>from math import fabs as fs
>>>math.fs(x)

import <module_name> as <alternate_name>

You can also import a module as a whole under a different name.

import <module_name> as <alternate_name>

Example:

	>>>import math as mh
>>>mh.fabs(x)

Note: Another way is to import all of the resources from a module into your namespace:

>>> from math import *

Module Reloading

If you alter a module's script while programming in interactive mode, the modifications will not be imported, even if you issue another import statement. In this situation, you'll want to utilize the importlib library's reload() function:

>>>import importlib
>>>importlib.reload(<some module name>)

Using the dir() Function

The dir() method returns a list of the function names (or variable names) in a module.

All modules, even those you write yourself, can use the dir() function.

Example:

import math
x = dir(math)
print(x)

Output:

Python Packages
Python Packages
Python Packages
Python Packages
Python Packages
Python Packages
Python Packages
Python Packages

Related Topics

Python JSON Schema

Python-jsonschema JSON: JSON stands for JavaScript Object Notation. It is a text-based format that represents structured data and can be used to interchange data among various applications. This is self-defining language...

5 minutes read.

Python program for perfect number

Python program for perfect number Before writing any program for a given problem, we have to understand the problem for which we are creating a solution program. So, let's understand what...

2 minutes read.

Executing Shell Commands in Python

This tutorial aims to make us understand what a Shell is, what is the importance of a Shell, what are Shell commands in Python, and how can we execute the...

3 minutes read.

Python hash() function

Python hash() function The hash() function in Python returns the hash value of the object (if it has one).  Syntax hash(object) Parameter obj : This parameter represents the object which we need to convert into hash. Return This...

1 minute read.

Python List insert() method

Python List insert() method The list.insert () method in Python inserts an item at the specified position. Syntax list.insert(i, x) Parameter i: This parameter represents a number specifying the position to insert the given value. x: This parameter signifies...

1 minute read.

Managing Multiple Python Versions With pyenv

Introduction If you had ever wished to assist to an application that makes use of several different Python versions but weren't sure whether you would quickly test them all? Do you...

4 minutes read.

Working with files in Python

Python is an object-oriented high-level programming language. Python has dynamic semantics and has high-level built-in data structures which support dynamic typing and dynamic binding. Python provides rapid development. It has an...

5 minutes read.

Convert Float to Int in Python using Pandas

Introduction To play with huge amounts of data, in python we require a tool. The tool which is available in Python is pandas. A panda is an open-source library. It is...

4 minutes read.

Find Words in String Python

Python : Python programming language is considered a general purpose; it is a high-level programming language that is not much difficult but easier to learn. Python programming language is rich in...

5 minutes read.

How to import pandas in python

How to Install Pandas in Python Python is a vast ocean of libraries, modules, and different functions. It has a solution for almost everything. Using Python, we can simplify even a...

3 minutes read.

YOLO Python

YOLO means you only look once.It is a technique to perform object detection is called YOLO. It is the algorithmused by the program to identify items in the image. Earlier detection...

4 minutes read.

How to Call a Function in Python

How To Call a Function in Python Functions are the well-defined and structured piece of code that is used to implement specific functionality. Calling a function in python is the best...

4 minutes read.

Nested Tuple in Python

If you are a Python learner, this page contains all the information that helps you know about nested tuple and how to access it in python. What is a Tuple? Multiple items...

4 minutes read.

Get Bounding Box Co-ordinates Python

Python: Python is an interactive and more accessible language than any other programming language. The python programming language uses a variety of libraries to perform the operations in a faster way....

6 minutes read.

Python History

Python is one of the top trending, widely-used programming languages. Python is a general-purpose programming language. Python language is known for its features. Some features are given below: SimplisticFree and open...

4 minutes read.

Performing Transaction Using Python MySQL

Transaction A Transaction contains a set of SQL commands used to change the data in the dataset. If we say transaction, it means that the data in the database has changed....

3 minutes read.

Standard GUI Unit Converter using PyQt5 in Python

GUI: A graphical interface (GUI) is a user interface that lets users interact with electronic devices like computers and smartphones by using menus, icons, and other visual cues (graphics). In contrast...

6 minutes read.

Iterators in Python

Introduction In Python, an iterator is defined as an object that enables traversing through all the values of a collection. It contains the countable number of values. The iterator is utilized to...

4 minutes read.

NOT IN operator in Python

This page contains all the information about “not in” operator in python. You can also know everything about what type of operator is “not in” in python language and where...

7 minutes read.

Python Word Tokenizer

Python Overview Python is an Object-Oriented high-level language. Python is designed to be highly beginner-friendly. Python has an English-like syntax, which is very easy to read. Python is an interpreted language...

4 minutes read.