Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Book Overview & Buying Hands-On Software Engineering with Python
  • Table Of Contents Toc
Hands-On Software Engineering with Python

Hands-On Software Engineering with Python - Second Edition

By : Brian Allbee
close
close
Hands-On Software Engineering with Python

Hands-On Software Engineering with Python

By: Brian Allbee

Overview of this book

Software engineering is more than coding; it’s the strategic design and continuous improvement of systems that serve real-world needs. This newly updated second edition of Hands-On Software Engineering with Python expands on its foundational approach to help you grow into a senior or staff-level engineering role. Fully revised for today’s Python ecosystem, this edition includes updated tooling, practices, and architectural patterns. You’ll explore key changes across five minor Python versions, examine new features like dataclasses and type hinting, and evaluate modern tools such as Poetry, pytest, and GitHub Actions. A new chapter introduces high-performance computing in Python, and the entire development process is enhanced with cloud-readiness in mind. You’ll follow a complete redesign and refactor of a multi-tier system from the first edition, gaining insight into how software evolves—and what it takes to do that responsibly. From system modeling and SDLC phases to data persistence, testing, and CI/CD automation, each chapter builds your engineering mindset while updating your hands-on skills. By the end of this book, you'll have mastered modern Python software engineering practices and be equipped to revise and future-proof complex systems with confidence.
Table of Contents (22 chapters)
close
close
21
Index

Getting and installing Python

Installation of Python varies a bit across operating systems. For macOS and Windows systems, there are installers available for download on the Python website (https://www.python.org/downloads/) that generally take care of everything needed. Those installers include every version of the language going back as far as 2.0.1.

Installation of multiple versions of Python is possible, with caveats

Barring some special considerations for certain Linux distributions, installation of multiple different versions of Python is viable on a single machine. Each installation will typically provide python, python3, python3.xx, and sometimes python3.xx.yy command-line entries that can be used to run it. In cases where there are multiple Python 3.x installations, say 3.11 and 3.12, the most recently installed version will be executed by the python and python3 commands. If a specific version is needed, invoking it with the full python3.xx command will be necessary (e.g., python3.11 or python3.12).

For Linux systems, installation can be more problematic. Many Linux systems have Python installed by default, because some of their programs make use of it. In several cases, those distributions also limit the available versions of Python that can be installed, in order to prevent a user from accidentally breaking system components or programs. Checking the default software installation tools in a Linux distribution is always the best first step: If the specific version of Python that is needed/desired is available, installing it using the standard tools for the distribution is the safest process. The managers of the package repository for the distribution will have made reasonable efforts to prevent installations that can break a system from being available, and anything that is available as an option would be expected to be safe.

In cases where there are no alternative versions available, there are still options worth considering before going down the path of installing from the Python website, or building from source: pyenv and Homebrew.

pyenv (https://github.com/pyenv/pyenv) is a command-line tool that allows a user to install, manage, and switch between different versions of Python at will. While switching between versions has many of the same risks as installing other versions, pyenv's ability to download and install minimal, usable Python versions without interfering with the system-level installations makes it a very good candidate for cases where project- and system-level Python version requirements conflict with each other. pyenv is also recognized by at least one Python project management tool, pipenv, and integrated well enough that the creation of a new project environment with a new Python version is handled by the project manager almost seamlessly.

Homebrew (https://brew.sh/) is a more general-purpose software management tool, capable of installing various Python versions as well as many other software packages. It is not available for Windows, at least as of late 2025, but is a viable option for macOS and Linux systems where multiple Python versions are needed.

If neither of those options is workable, falling back to downloading from the Python website is always possible too. Because of the widely varied package structures across the Linux ecosystem, those downloads are the source code and would require building the local installation from scratch. If this path must be taken, it is important to find a good, step-by-step breakdown of the processes and prerequisites involved. Usually a search along the lines of {your Linux distro name} build python 3.13 from source will yield several options.

CONTINUE READING
83
Tech Concepts
36
Programming languages
73
Tech Tools
Icon Unlimited access to the largest independent learning library in tech of over 8,000 expert-authored tech books and videos.
Icon Innovative learning tools, including AI book assistants, code context explainers, and text-to-speech.
Icon 50+ new titles added per month and exclusive early access to books as they are being written.
Hands-On Software Engineering with Python
notes
bookmark Notes and Bookmarks search Search in title playlist Add to playlist download Download options font-size Font size

Change the font size

margin-width Margin width

Change margin width

day-mode Day/Sepia/Night Modes

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Confirmation

Modal Close icon
claim successful

Buy this book with your credits?

Modal Close icon
Are you sure you want to buy this book with one of your credits?
Close
YES, BUY

Submit Your Feedback

Modal Close icon
Modal Close icon
Modal Close icon