Table of Contents

Python - Packages (Archive, Distribution)

About

Code Shipping - Archive (Distribution) in Python

Packages (or better Distribution package) are the result of the packaging of a project that may contains one or more (regular) package

Not to confound with regular package which are parents of modules. One distribution package may contains several regular package.

A package is a compressed tarball file that contains:

Format

Source

Python - Source Distribution (sdists)

Binary

Python

Wheel and Egg are both binary packaging formats created from compiled python file.

Wheel is currently considered the standard for built and binary packaging for Python.

Exe

Management

Install

Doc

First update the tools

python -m pip install --upgrade pip setuptools wheel

In a binary format

You can install your package:

pip install package_name
pip install "requirement-specifiers"
# Example
pip install "pyspark == 2.2.2"
easy_install package

From a tarball / source

cd /rootOfProject
python setup.py install
# or
setup.py install
pip install https://github.com/myName/myPackage/tarball/master 
pip install https://github.com/myName/myPackage/tarball/X.X.X
curl --location --output myPackage-X.X.X.tar.gz https://github.com/myName/myPackage/tarball/X.X.X
tar xvfz myPackage-X.X.X.tar.gz
cd myPackage
# as script
python myScript.py args
# as package
pip install .
pip install -e git+https://git.repo/some_pkg.git#egg=SomeProject          # from git
pip install -e hg+https://hg.repo/some_pkg.git#egg=SomeProject            # from mercurial
pip install -e svn+svn://svn.repo/some_pkg/trunk/#egg=SomeProject         # from svn
pip install -e git+https://git.repo/some_pkg.git@feature#egg=SomeProject  # from a branch

where: VCS:

Installation Location

Install location

Global

default global site-packages directory

(for instance /usr/lib/python2.7/site-packages)

GLOBALE_HOME/pythonX.X/site-packages/

This is the pip default

Example: install global of myPackage

pip install myPackage

User

The user location :

The package are then installed at USER_HOME/pythonX.X/site-packages/

To install in a user location, use the --user option of pip

Example:

export PYTHONUSERBASE=$HOME
pip install --user virtualenv

Virtual environment

When working in a virtual environment, the package will be installed in it. See Python - virtualenv (Python Environment / venv)

Update

See the –update option of pip

Example: upgrade the setuptools and wheel package

python3 -m pip install --user --upgrade setuptools wheel

Packaging

Packaging task management, see setup.py cli

Reference / Specification

See Python - Pypa (Python Packaging Authority)

Documentation / Reference