About this book

Python Tools for Visual Studio is a free and open source plugin for Visual Studio from Microsoft. It enables developers to use all the major productivity features of Visual Studio in their projects. The powerful integrated code navigation and code completion tools (IntelliSense) in PTVS empower developers to significantly speed up the coding process.
PTVS provides a unique IDE for either Python or IronPython languages, taking advantage of the .NET framework in plain Python projects.

This book provides a detailed insight into Python tools in Visual studio to help Python developers implement a more productive and efficient workflow.

Starting with the installation and configuration of PTVS, you will be familiarized with the various tools and panels available. Throughout the book, you will learn about how to speed up coding sessions with handy tips on refactoring and debugging. Moving on towards IntelliSense and the project setup, you will also learn about how PTVS does project handling, and how you can use Python environments for your project.

You then round off things by delving into Django development and library management in Visual Studio to gain advanced knowledge on Django web development for web applications.

Publication date:
April 2014


Chapter 1. Introduction to PTVS

Python Tools in Visual Studio (PTVS) is an extremely powerful tool because of the following reasons:

  • It gives Python developers a powerful IDE with many helpful coding features and integrations in one unique environment.

  • PTVS provides developers on the Windows platform the opportunity to use their favorite IDE—Visual Studio—to explore, learn, and manage one of the most commonly used scripting languages.

In this chapter, we will have a high-level overview of PTVS, starting with a step-by-step tutorial for installing and configuring it correctly followed by a quick overview of the principle tools of Visual Studio to control the Python environment and configuration. Understanding the Visual Studio windows will greatly benefit your ability to explore and manage workflows of the source code and the structure of your Python project.


Step-by-step installation and configuration

There are various formats of PTVS available for installation depending on your preexisting installed version of Visual Studio. PTVS is available for Visual Studio 2010, 2012, and 2013 (Pro edition or above).

If the previously mentioned versions of Visual Studio are not installed on your computer, it's possible to install a standalone version of PTVS. Visual Studio permits side-by-side installation, meaning it provides the ability to install multiple versions on one system. The only prerequisite is that the older version must be installed before the newer one.

The different types of installations possible for PTVS are described on its CodePlex website, http://go.microsoft.com/fwlink/?LinkID=390659.

The preceding figure is taken from http://go.microsoft.com/fwlink/?LinkID=390659.

The most important prerequisite for Visual Studio 2013 is to have Windows 7 (32 or 64 bit) or above running as your operating system.

Once you have sorted out the prerequisites and installed the PTVS package of your choice, you will need to decide on the type of Python interpreter. Choosing the appropriate Python interpreter depends on your need for your project. Refer to the PTVS CodePlex page at http://go.microsoft.com/fwlink/?LinkID=299429 to help your decision-making process. You can choose between CPython and IronPython (32 or 64 bit). If you chose CPython, then you can choose between Python Version 2.7 and 3.3. It is recommended to use CPython 3.3 32 bit for most cases. For web development, the recommendation would be CPython 2.7 32 bit.

Make your choice based on what you intend to do and the framework that you will be using with Python. For the scope of this book, we suggest to install the 32-bit CPython Version 2.7. For the latest complete list of downloadable Python interpreters, please refer to the PTVS CodePlex page at http://go.microsoft.com/fwlink/?LinkID=390659.

Once the interpreter is installed, you can fire up PTVS by opening the Visual Studio 2013 application from the Start menu. If everything works, this is what you are going to see on your screen:

Let's check whether the whole system works properly. Create a new project and see if it runs as follows:

  1. To create a new project, navigate to the New Project menu under File to launch the New Project dialog box.

  2. Select Python Application and click on OK. This will create a new project and a basic Hello World Python application file.

  3. Start the app by clicking on the Start button in the toolbar, or just hit F5.

  4. If you have any previous installations of Python on your system, you should see the application response window with the Hello World message, as shown in the following screenshot:


PTVS tools overview

Now that you have PTVS up and running, let's take a closer look at the various tools provided by Visual Studio that empower the Python development cycle. Let's start with the windows, which are accessible through the View menu:

From the View menu, you can choose two windows that are more important for Python:

  • Python Environments

  • Python Interactive

The Python Environments window

The Python Environments window shows all the Python interpreters' versions (environments) installed on the system. For each of them, an interactive window called read–eval–print loop (REPL) can be accessed, and it's possible to see the status of the package analysis made on all the packages installed. This is used by Visual Studio to carry out syntax and type analyses of all the classes and methods available for a given Python environment.

Since the analysis of Python code is complex, it's possible that you will not see progress in the Completion DB when you open it the first time. Even if Visual Studio performs background analysis to not interfere with the user experience of the IDE, the first analysis can take from one minute to an hour. This depends on different factors such as the number of installed libraries in the Python environment and the system resources available. Once the analysis of all the Python packages in Visual Studio is complete, the message Completion DB is up to date will be shown on the row of a given Python environment.

The Completion DB is automatically updated every time we open a new project in PTVS or install a new Python library; in such cases, Visual Studio reruns the background analysis on the new reachable code.

Sometimes, the automated background analysis process could be disabled or blocked, and the lists of installed libraries are not shown automatically. If the newly installed libraries and packages are not shown, we can manually trigger the analysis process with the Refresh DB button. By clicking on the button, we re-enable it, forcing a background analysis.

The Python Environments tool window with the list of installed Python environments and the tool buttons to access most used functions

Clicking on the View in File Explorer link in the Python Environments window will provide you with direct access to the Python installation folder.

Python Interactive

The Python Interactive window gives you access to the standard REPL tool for Python directly in the IDE along with the ability to access the modules that you are developing. This is a great and quick way to debug and test some code snippets.

The Python Interactive tool window from where you can access the Python standard REPL tool

Besides the normal Python commands available in the standard Python REPL, Microsoft has further added some commands that are reachable by the $ (dollar) symbol. The list of available commands is available through $help.


Visual Studio panels with PTVS

Visual Studio offers lots of standard tool windows to control the structure and workflow of your application. The main tool windows are Solution Explorer, Properties, Find Symbol Results, and Object Browser, as shown in the following screenshot:

To the right, we have the Solution Explorer window. It provides a glimpse of the structure of the current solution. In Visual Studio, a solution is a bundle of projects. In the Solution Explorer window, not only can you manage the different source files of the projects, but also configure the Python environment and the packages used in it (i.e. references and dependencies).

Besides the file structure of the project, the Solution Explorer window also provides a class view, which shows an overview of all the classes and structures (i.e. fields, properties, and methods). This is a quick view of the more complex window, Object Browser, which is visible in the middle of the screenshot. This window is accessible through the Object Browser menu item under View (or using the Ctrl + Alt + J shortcut). The two tools together provide a manner to browse and navigate the object structure of your code.

Under the Solution Explorer window, we can find the Properties window that shows the properties related to various objects of your projects such as the single source code files in it. It also shows more detailed information, for example, the path, and how it has to be managed in the built system of the files.

The most important and powerful window we have in PTVS is the source code window, which is where any programmer spends most of his/her time. It provides multitab source code navigation; every pane is a single source code file:

In each pane there are two comboboxes. The left one provides the function to navigate between classes in the file; the right one provides the function to navigate between methods of the selected class. In the source code window, Visual Studio unleashes much more powerful tools such as refactoring, IntelliSense, and code traversing, which we will explore in depth in the next chapters.

There are other windows that will become clearer during our exploration of PTVS in the coming chapters, such as the Find Symbol Results window at the bottom of the screenshot. That window shows the result of a search command or the list of references of a given code element, like a method, class, or property.



In this chapter, we introduced a quick high-level overview of PTVS and the basis of it. Now that you have PTVS up and running and have familiarized yourself with the two windows, you are ready to dive into PTVS with more detailed project knowledge in the following chapters.

In the next chapter, we'll go in to more detail and start to analyze the coding tools that Visual Studio provides in PTVS that can tremendously help during the coding process and also manage Python projects.

About the Authors

  • Martino Sabia

    Martino is an inquisitive developer with close to 30 years of coding background. Throughout his years of working with different platforms and languages, he has always focussed on finding new and creative ways of using different technologies. Based in Italy, Martino spent his career in various startup companies, from junior developer to software architect, and now as a project lead for Deltatre. He works on consumer-facing heavy-traffic websites and media streaming platforms in the sports industry.

    Browse publications by this author
  • Cathy Wang

    Cathy Wang is a user-experience designer who specializes in service design and experience strategy. She has worked on many cross-channel projects, and has served as design lead for enterprise services in fields from Telecom to public sectors around the globe. Cathy has worked for world-class design agencies bringing complex visions to life. In her free time she builds web projects and apps. She is infinitely curious about new technologies and the variety of experiences they bring.

    Browse publications by this author

Latest Reviews

(2 reviews total)
Great books and company. I use Packt for my main references.
contents fit for me and easy to read
Python Tools for Visual Studio
Unlock this book and the full library for FREE
Start free trial