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.
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.
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:
To create a new project, navigate to the New Project menu under File to launch the New Project dialog box.
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:
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:
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 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.
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
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.