Top Rated Plus on Upwork with a 100% Job Success ScoreView on Upwork
retzdev logo
logo
Building a Python Package

Building a Python Package: First Steps (2)

by Jarrett Retz

January 7th, 2021

    Since we are looking to eventually publish the package on PyPi.org, I decided to start looking for a guide on publishing on the site.

    I quickly came across an FAQ page that had links to a packaging tutorial on the Python Packaging User Guide.

    Following the link, I ended up on a subdomain of python.org. This looks like the right place!

    Installing Python

    First, let's make sure that we have the latest version of Python installed.

    Go to https://www.python.org/downloads/release and click on the Download Python 3.9.x. This may automatically detect the proper OS for your download.

    Open the .pkg file and work through the installer. I am using a Mac so your installation process may be slightly different.

    Next, after the installation is complete, open up a new terminal or command prompt.

    Run the command python3.

    Python's interactive command shell should open and the latest Python version should appear in the first line.

    Update & Install Needed Packages

    We need to run a quick command that is important for packages that are used when building and packaging our package.

    python3 -m pip install --upgrade pip setuptools wheel

    Next, we need to install pipenv.

    pipenv is a package that let's us track the dependencies of our package. It allows use to create a virtual environment.

    You can read more about pipenv on the Managing Application Dependencies tutorial page.

    To install pipenv, run the command pip3 install --user pipenv.

    Create Project Folder

    Create a new folder for our project. I'm going to name mine bea. I think I'm going to create a package for the Bureau of Economic Analysis API. There are a couple out there, but I'm not particularly fond of them.

    Open up your text editor or IDE. I am using Visual Studio Code.

    Inside the main project folder, create files with names:

    • LICENSE
    • README.md
    • setup.py

    Next, create two folders:

    • bea
    • tests

    The folder structure will look like the below tree.

    .
    ├── LICENSE
    ├── README.md
    ├── bea/
    ├── setup.py
    └── tests/

    Many of these files won't be used till later.

    The final file we are going to create in this project setup is an __init__.py file inside of the nested bea directory.

    .
    ├── LICENSE
    ├── README.md
    ├── bea
    │   └── __init__.py
    ├── setup.py
    └── tests

    That's it for this section. We are now in a comfortable position to start developing the package.

    Jarrett Retz

    Jarrett Retz is a freelance web application developer and blogger based out of Spokane, WA.

    jarrett@retz.dev

    Subscribe to get instant updates

    Contact

    jarrett@retz.dev

    Legal

    Any code contained in the articles on this site is released under the MIT license. Copyright 2024. Jarrett Retz Tech Services L.L.C. All Rights Reserved.