I’ve written Python for years, and I install these 5 tools on every new PC

https://www.profitableratecpm.com/f4ffsdxe?key=39b1ebce72f3758345b2155c98e6709c

It’s easy to focus on huge Python frameworks and complex libraries. Many developers don’t see how much better their day-to-day coding could be if they simply used smaller, focused utilities that simplify the experience.

I like having tools that help me, so I always install five of them on each machine. These utilities reduce the little micro-stresses that accumulate during development. Basically, they pave the way so you can get into deeper, more focused work. I recommend them to anyone who uses Python regularly and wants an easy boost.

Pipx (the catalyst)

Python Pipx with code Credit: Pipx

  • Order: pip install pipx

Usually pip just launches packages directly into your global configuration or requires you to configure virtual environments. Pipx solves this problem by installing the Python binaries in isolated environments, but you can still access the tools globally directly from your command line. Think of it as an app store for all your Python command line apps that ends the terrible dependency conflicts that occur between different tools.

Getting this separation right is essential to keeping your development setup healthy. While pip is fantastic for managing libraries within a specific project, using it for system-wide applications usually lands you in dependency hell. If you update a library for one application, you accidentally break another library due to version conflicts.

Pipx wraps around standard Python packaging tools, which solves most problems. When you run pipx install packageit automatically configures a dedicated and isolated virtual environment only for this package and its required dependencies. Then it finds executable commands (console scripts) and creates shortcuts (symlinks) to a directory in your system PATH, like ~/.local/bin.

Thefuck (The Self-Corrector)

fucking code Credit: Thefuck Python

  • Order: pipx install thefuck

This tool has a name you won’t forget, but it’s amazing for maintaining your terminal workflow. As soon as you miss an order, it steps in and fixes it immediately. It analyzes the error message from your last entry and compares it to tons of built-in rules.

If you type git brnch and get an error, just type the f word, and it will be fixed in git branch. Although the provocative name reflects the frustration of a typo, the utility is surprisingly sophisticated. I don’t like it to be set to a curse word, so I use “oops” and you can set it to whatever you want.

It uses a rules-based system to spot context-specific failures. For example, if you run a command like apt-get install vimand it fails due to “Permission Denied”, the tool suggests to run the command again with sudo added, asking for confirmation before execution. It handles a wide variety of scenarios, such as repair puthon has pythoncorrecting arguments in the wrong order or suggesting git push --set-upstream origin master when trying to push a new branch without an upstream remote.

Pdb++ (the best debugger)

Python Debugger with Code Credit: Pdb++ Debugger

  • Order: pip install pdbpp

If you’ve ever looked at the simple and boring output of Python’s default debugger, you already know that while pdb technically works, it’s just plain ugly and lacking in functionality. It gets the job done, but it really lacks the convenience we expect from modern development tools.

So I always use pdb++, which works as a fully compatible replacement for the standard library module. The best part is how smoothly it integrates; once you run the install command, it resumes the standard pdb module. This means your current import pdb; pdb.set_trace() calls, or the most recent breakpoint() built-in, get upgraded immediately without having to change a single line of code.

The biggest feature you’ll immediately notice is sticky mode. In normal pdb you have to constantly type l Or list just to remember where you are in the source code. However, pdb++ fixes this problem by continuously displaying much of the code context that automatically updates as you execute. This essentially gives you the visual aid of an IDE graphical debugger right in your lightweight terminal environment, ensuring you never lose track of your place in the stack.

Pyupgrade (the modernizer)

pyupgrade with code Credit: Pyupgrade

  • Order: pip install pyupgrade

This tool automatically updates your code with the latest Python syntax. Pyupgrade analyzes your files and applies modern upgrades directly, ensuring your project can use the latest language features without you spending hours refactoring. If you still have code using old % formatting or older type hints, pyupgrade instantly replaces them with the current f-strings and annotation styles.

For example, it easily changes the typing.List And typing.Optional to standard collection types and cleaner pipe union syntax (like str | None) that new versions of Python have introduced. This makes your function signatures much more readable. It teaches you how to write modern Python by automatically removing Python 2 leftovers, such as unnecessary ones. coding: utf-8 headers, additional u prefixes on strings and classes that explicitly inherit from object.

This tool doesn’t stop at the basics. It delves deeper into how you use the standard library to optimize things; it simplifies super() calls removing unnecessary arguments, replaces old unittest aliases like failUnlessEqual For assertEqualand even turns defaultdict(lambda: []) in the fastest and cleanest defaultdict(list).

This also ensures that your comparisons are more secure, by fixing cases where you might be using incorrectly is with literals instead of proper equality operators.

Ptpython (the best REPL)

PTPython with code Credit: PTPython

  • Order: pipx install ptpython

The standard Python shell is pretty basic and doesn’t take long to learn, but ptpython has an advanced read-evaluate-print (REPL) loop that contains features like syntax highlighting, auto-completion, mouse support, and even emacs/vi keyboard shortcuts. This gives you the feeling of working in a modern IDE console. This makes prototyping small pieces of Python code much faster and more enjoyable, even with larger datasets that are prone to crashes.

This tool serves as an advanced interface built on the prompt_toolkit library, essentially transforming the terminal into a much more capable workspace that runs on Linux, BSD, OS X, and Windows. Beyond the immediate aesthetic improvements to syntax highlighting and color schemes, one of the most significant quality of life improvements is its sophisticated input validation system.

Rather than executing a command with a typo and forcing you to rewrite a complex multiline block from scratch, ptpython detects syntax errors in real time and prevents execution until they are resolved, moving the cursor directly to the error. The multi-line editing capability is seamless; it automatically detects when you define functions or classes and handles the indentation for you.


These tools alleviate all the annoying friction points you encounter every day when coding. Even small, specific upgrades to your tools can bring you massive returns in productivity and seriously free up your mental energy. It keeps me away from times when development is frustrating, and I’ve noticed that I enjoy coding a lot more since I started using them.

The goal is to make these repetitive tasks disappear, so that your device feels less like a big obstacle and more like a natural extension of the way you think. So you should use these commands to stay in the flow and deliver higher quality work without having to struggle too hard.

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button