10 Interesting Tools for Python Programming

By John Paul Mueller

Python, like most other programming languages, has strong third-party support in the form of various tools. A tool is any utility that enhances the natural capabilities of Python when building an application. So, a debugger is considered a tool because it’s a utility, but a library isn’t.

Track bugs with Roundup Issue Tracker

Public sites are generally not as convenient to use as your own specific, localized bug-tracking software. You can use a number of tracking systems on your local drive, but Roundup Issue Tracker is one of the better offerings. Roundup should work on any platform that supports Python, and it offers these basic features:

  • Bug tracking

  • TODO list management

If you’re willing to put a little more work into the installation, you can get additional features. However, to get them, you may need to install other products, such as a DataBase Management System (DBMS). After you make the additional installations, you get these upgraded features:

  • Customer help-desk support with the following features:

    • Wizard for the phone answerers

    • Network links

    • System and development issue trackers

  • Issue management for Internet Engineering Task Force (IETF) working groups

  • Sales lead tracking

  • Conference paper submission

  • Double-blind referee management

  • Blogging

Create a virtual environment using VirtualEnv

VirtualEnv provides the means to create a virtual Python environment that you can use for the early testing process or to diagnose issues that could occur because of the environment. There are at least three standard levels of testing that you need to perform:

  • Bug

  • Performance

  • Usability

Install your application using PyInstaller

You need a surefire method of getting an application from your system to the user’s system. Installers, such as PyInstaller, do just that. They make a nice package out of your application that the user can easily install.

Fortunately, PyInstaller works on all the platforms that Python supports, so you need just the one tool to meet every installation need you have. In addition, you can get platform-specific support when needed. In many cases, avoiding the platform-specific features is best unless you really do need them. When you use a platform-specific feature, the installation will succeed only on the target platform.

Build developer documentation using pdoc

The majority of your documentation is likely to affect developers, and pdoc is a simple solution for creating it.

The pdoc utility relies on the documentation that you place in your code in the form of docstrings and comments. The output is in the form of a text file or an HTML document. You can also have pdoc run in a way that provides output through a web server so that people can see the documentation directly in a browser.

Develop application code using Komodo Edit

One of the better general-purpose IDEs for novice developers is Komodo Edit. You can obtain this IDE free, and it includes a wealth of features that will make your coding experience much better than what you’ll get from IDLE. Here are some of those features:

  • Support for multiple programming languages

  • Automatic completion of keywords

  • Indentation checking

  • Project support so that applications are partially coded before you even begin

  • Superior support

When you start to find that your needs are no longer met by Komodo Edit, you can upgrade to Komodo IDE, which includes a lot of professional level support features, such as code profiling and a database explorer.

Debug your application using pydbgr

When your editor doesn’t include a debugger, you need an external debugger such as pydbgr.

Here are some of the standard and nonstandard features that make pydbgr a good choice when your editor doesn’t come with a debugger:

  • Smarteval

  • Out-of-process debugging

  • Thorough byte-code inspection

  • Event filtering and tracing

Enter an interactive environment using IPython

Using a more advanced shell, such as IPython, can make the interactive environment friendlier by providing GUI features so that you don’t have to remember the syntax for odd commands.

One of the more exciting features of IPython is the ability to work in parallel computing environments. Normally a shell is single threaded, which means that you can’t perform any sort of parallel computing. In fact, you can’t even create a multithreaded environment. This feature alone makes IPython worthy of a trial.

Test Python applications using PyUnit

At some point, you need to test your applications to ensure that they work as instructed. Products such as PyUnit make unit testing significantly easier.

The nice part of this product is that you actually create Python code to perform the testing. Your script is simply another, specialized, application that tests the main application for problems.

Tidy your code using Isort

In some situations, it becomes difficult, if not impossible, to figure out what’s going on with your code when it isn’t kept neat. The Isort utility performs the seemingly small task of sorting your import statements and ensuring that they all appear at the top of the source code file.

Just knowing which modules a particular module needs can be a help in locating potential problems. In addition, knowing which modules an application needs is important when it comes time to distribute your application to users. Knowing that the user has the correct modules available helps ensure that the application will run as anticipated.

Provide version control using Mercurial

Numerous version control products are available for Python. One of the more interesting offerings is Mercurial. You can get a version of Mercurial for almost any platform that Python will run on, so you don’t have to worry about changing products when you change platforms.

Unlike a lot of the other offerings out there, Mercurial is free. Even if you find that you need a more advanced product later, you can gain useful experience by working with Mercurial on a project or two.

The best part about Mercurial is that it provides a great online tutorial.