Feedback
If you run into issues while using the Python for the Web extension, you can enter issues in the vscode-python-web-wasm repository.
Sử dụng Visual Studio Code Python
Python đã trở thành một trong những ngôn ngữ lập trình phổ biến năm 2022.
Bài viết này sẽ hướng dẫn các bạn sử dụng Visual Studio Code – Một Editor đa năng phát triển bởi MicroSoft.
Để cài đặt
Các bạn download từ link bên dưới (Link chính thức của Microsoft) DOWNLOAD VISUAL STUDIO CODE
Việc cài đặt rất dễ dàng, bạn chọn file cài đặt tương ứng với hệ điều hành sử dụng, click đúp cài đặt phần mềm.
Các extension hỗ trợ lập trình
Visual Studio Code được Microsoft phát triển cho nhiều ngôn ngữ lập trình, nên để lập trình Python trên đó các bạn cài một số extension cần thiết.
Để cài extension bằng lệnh, trên VS code bấm tổ hợp phím [ Ctrl + P ], nhập lệnh cài đặt và gõ phím [ Enter ]
Để cài đặt thông thường các bạn bấm tổ hợp phím [ Ctrl + Shift + X ] hoặc bấm vào biểu tượng Extension trên VS code, tìm kiếm extension cần thiết bấm [ Install ] để cài đặt.
Hướng dẫn sử dụng VS
Tạo Workspace
Từ cửa sổ VS Code, bấm tổ hợp phím [ Ctrl + N ]
Tạo file hello-world.py
Lần sau bạn muốn mở lại Project chỉ cần chọn [ Ctrl + O ] browser tới file này.
Chạy python script
Sau khi tạo file hello-world.py, để chạy file này chúng ta kích chuột phải vào file chọn “Run python file in terminal”
Kết quả:
Một số mẹo hay khi lập trình Python bằng VS
a. Nhảy tới 1 function
Giữ phím [ Ctrl ] và bấm vào function, method để nhảy tới function mà bạn đã định nghĩa.
b. Format source code theo chuẩn PEP 8
python -m pip install -U autopep8 --user
Bấm tổ hợp phím [ Ctrl + Shift + I ] để format file source code cho chúng.
All rights reserved
Debugging
No more
For more specific information on debugging in Python, such as configuring your
launch.json
settings and implementing remote debugging, see Debugging. General VS Code debugging information is found in the debugging document.
Additionally, the Django and Flask tutorials provide examples of how to implement debugging in the context of web applications, including debugging Django templates.
Python and Visual Studio Code Setup
In this part, we will learn to install Python and VSCode and run a simple Python code.
Installing Python
Downloading and installing the latest version of Python is straightforward. Go to Python.org and download the latest version for Windows. The installer is also available for Linux/Unix, macOS, and other platforms. After downloading the installer, install Python with default settings.
Image from Python.org
The most popular way of installing Python is through Anaconda Distribution. It comes with a pre-installed package and software for us to start coding without hiccups. It is available for Windows, macOS, and Linux operating systems.
Image from Anaconda
After installing Python on our operating system, check whether it is properly working by typing the following command in CLI / Terminal.
python --version
Output:
Python 3.9.13
Other Python installation methods
We can also install Python using various CLI tools or through the Windows store.
You can check out our full guide on how to install Python for more details. Similarly, our interactive Introduction to Python course helps you master the basics of Python syntax, lists, functions, packages, and Numpy.
Installing VSCode
Installing VSCode is super simple. Download and install the stable build from the official website. The installer is available for all kinds of operating systems, including web browsers.
Image from Visual Studio Code
Other VSCode installation methods
We can install using Microsoft store, Snap Store, and multiple CLI tools for Windows, Linux, and macOS.
Running Python in VSCode
After installing Python and VSCode, it is time to write a simple code and run the Python file within the IDE.
Create a new file
At start, you will see the welcome note. Ignore that and go to File > New Text File or use the keyboard shortcut Ctrl + N to create a new file. After that, write a simple print expression to display “Hello World.”
Save Python file
Save the file using Ctrl + S. Select the file directory and type the file name. Make sure to add `.py` at the end of the file name.
Select the interpreter
To run the Python file, we need to select the Python interpreter. By default, the Anaconda environment comes with Python version 3.9.13.
Run a Python file
To run the Python file, simply click on the Run button on the top left, as shown in the image. It will initialize the terminal and run the Python file to display the output.
You can also type python test.py in the terminal to run the file present in the current directory.
Debugging
There is support for debugging Python files on the Web and it uses the same UI as VS Code Desktop debugging. The features currently supported are:
- Set breakpoints
- Step into and out of functions
- Debug across modules
- Evaluate variables in the Debug Console
- Debug the program in the Integrated Terminal
The screenshot below shows an active debug session. The files are hosted directly on GitHub on this sample repository.
Install and use packages
Let’s build upon the previous example by using packages.
In Python, packages are how you obtain any number of useful code libraries, typically from PyPI, that provide additional functionality to your program. For this example, you use the
numpy
package to generate a random number.
Return to the Explorer view (the top-most icon on the left side, which shows files), open
hello.py
, and paste in the following source code:
import numpy as np msg = "Roll a dice" print(msg) print(np.random.randint(1,9))
Tip: If you enter the above code by hand, you may find that auto-completions change the names after the
as
keywords when you press Enter at the end of a line. To avoid this, type a space, then Enter.
Next, run the file in the debugger using the “Python: Current file” configuration as described in the last section.
You should see the message, “ModuleNotFoundError: No module named ‘numpy'”. This message indicates that the required package isn’t available in your interpreter. If you’re using an Anaconda distribution or have previously installed the
numpy
package you may not see this message.
To install the
numpy
package, stop the debugger and use the Command Palette to run Terminal: Create New Terminal (⌃⇧` (Windows, Linux Ctrl+Shift+`)). This command opens a command prompt for your selected interpreter.
To install the required packages in your virtual environment, enter the following commands as appropriate for your operating system:
-
Install the packages
# Don't use with Anaconda distributions because they include matplotlib already. # macOS python3 -m pip install numpy # Windows (may require elevation) py -m pip install numpy # Linux (Debian) apt-get install python3-tk python3 -m pip install numpy
-
Now, rerun the program, with or without the debugger, to view the output!
Congrats on completing the Python tutorial! During the course of this tutorial, you learned how to create a Python project, create a virtual environment, run and debug your Python code, and install Python packages. Explore additional resources to learn how to get the most out of Python in Visual Studio Code!
Autocomplete and IntelliSense
The Python extension supports code completion and IntelliSense using the currently selected interpreter. IntelliSense is a general term for a number of features, including intelligent code completion (in-context method and variable suggestions) across all your files and for built-in and third-party modules.
IntelliSense quickly shows methods, class members, and documentation as you type. You can also trigger completions at any time with ⌃Space (Windows, Linux Ctrl+Space). Hovering over identifiers will show more information about them.
Configure tests
Once you have the Python extension installed and a Python file open within the editor, a test beaker icon will be displayed on the VS Code Activity bar. The beaker icon is for the Test Explorer view. When opening the Test Explorer, you will see a Configure Tests button if you don’t have a test framework enabled. Once you select Configure Tests, you will be prompted to select a test framework and a folder containing the tests. If you’re using unittest, you will also be asked to select the file glob pattern used to identify your test files.
Note: A file glob pattern is a defined string pattern that matches file or folder names based on wildcards to then include or not include.
You can configure your tests anytime by using the Python: Configure Tests command from the Command Palette. You can also configure testing manually by setting either
python.testing.unittestEnabled
or
python.testing.pytestEnabled
, which can be done either in the Settings editor or in the
settings.json
file as described in the VS Code Settings documentation. Each framework also has specific configuration settings as described under Test configuration settings for their folders and patterns.
If both frameworks are enabled, then the Python extension will only run
pytest
.
If you enable pytest, VS Code prompts you to install the framework package if it’s not already present in the currently activated environment:
Start VS Code in a workspace folder
By starting VS Code in a folder, that folder becomes your “workspace”.
Using a command prompt or terminal, create an empty folder called “hello”, navigate into it, and open VS Code (
code
) in that folder () by entering the following commands:
mkdir hello cd hello code .
Note: If you’re using an Anaconda distribution, be sure to use an Anaconda command prompt.
Alternately, you can create a folder through the operating system UI, then use VS Code’s File > Open Folder to open the project folder.
Run Python code
Click the Run Python File in Terminal play button in the top-right side of the editor.
The button opens a terminal panel in which your Python interpreter is automatically activated, then runs
python3 hello.py
(macOS/Linux) or
python hello.py
(Windows):
There are three other ways you can run Python code within VS Code:
-
Right-click anywhere in the editor window and select Run > Python File in Terminal (which saves the file automatically):
-
Select one or more lines, then press Shift+Enter or right-click and select Run Selection/Line in Python Terminal. This command is convenient for testing just a part of a file.
-
From the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)), select the Python: Start REPL command to open a REPL terminal for the currently selected Python interpreter. In the REPL, you can then enter and run lines of code one at a time.
Congrats, you just ran your first Python code in Visual Studio Code!
Configure and run the debugger
Let’s now try debugging our Python program. Debugging support is provided by the Python Debugger extension, which is automatically installed with the Python extension. To ensure it has been installed correctly, open the Extensions view (⇧⌘X (Windows, Linux Ctrl+Shift+X)) and search for
@installed python debugger
. You should see the Python Debugger extension listed in the results.
Next, set a breakpoint on line 2 of
hello.py
by placing the cursor on the
Next, to initialize the debugger, press F5. Since this is your first time debugging this file, a configuration menu will open from the Command Palette allowing you to select the type of debug configuration you would like for the opened file.
Note: VS Code uses JSON files for all of its various configurations;
launch.json
is the standard name for a file containing debugging configurations.
Select Python File, which is the configuration that runs the current file shown in the editor using the currently selected Python interpreter.
The debugger will start, and then stop at the first line of the file breakpoint. The current line is indicated with a yellow arrow in the left margin. If you examine the Local variables window at this point, you can see that the
msg
variable appears in the Local pane.
A debug toolbar appears along the top with the following commands from left to right: continue (F5), step over (F10), step into (F11), step out (⇧F11 (Windows, Linux Shift+F11)), restart (⇧⌘F5 (Windows, Linux Ctrl+Shift+F5)), and stop (⇧F5 (Windows, Linux Shift+F5)).
The Status Bar also changes color (orange in many themes) to indicate that you’re in debug mode. The Python Debug Console also appears automatically in the lower right panel to show the commands being run, along with the program output.
To continue running the program, select the continue command on the debug toolbar (F5). The debugger runs the program to the end.
Tip Debugging information can also be seen by hovering over code, such as variables. In the case of
msg
, hovering over the variable will display the string
Roll a dice!
in a box above the variable.
You can also work with variables in the Debug Console (If you don’t see it, select Debug Console in the lower right area of VS Code, or select it from the … menu.) Then try entering the following lines, one by one, at the > prompt at the bottom of the console:
msg msg.capitalize() msg.split()
Select the blue Continue button on the toolbar again (or press F5) to run the program to completion. “Roll a dice!” appears in the Python Debug Console if you switch back to it, and VS Code exits debugging mode once the program is complete.
If you restart the debugger, the debugger again stops on the first breakpoint.
To stop running a program before it’s complete, use the red square stop button on the debug toolbar (⇧F5 (Windows, Linux Shift+F5)), or use the Run > Stop debugging menu command.
For full details, see Debugging configurations, which includes notes on how to use a specific Python interpreter for debugging.
Tip: Use Logpoints instead of print statements: Developers often litter source code with
Create a virtual environment
A best practice among Python developers is to use a project-specific
virtual environment
. Once you activate that environment, any packages you then install are isolated from other environments, including the global interpreter environment, reducing many complications that can arise from conflicting package versions. You can create non-global environments in VS Code using Venv or Anaconda with Python: Create Environment.
Open the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)), start typing the Python: Create Environment command to search, and then select the command.
The command presents a list of environment types, Venv or Conda. For this example, select Venv.
The command then presents a list of interpreters that can be used for your project. Select the interpreter you installed at the beginning of the tutorial.
After selecting the interpreter, a notification will show the progress of the environment creation and the environment folder (
/.venv
) will appear in your workspace.
Ensure your new environment is selected by using the Python: Select Interpreter command from the Command Palette.
Note: For additional information about virtual environments, or if you run into an error in the environment creation process, see Environments.
Next steps
- Python Hello World tutorial – Get started with Python in VS Code.
- Editing Python – Learn about auto-completion, formatting, and refactoring for Python.
- Basic Editing – Learn about the powerful VS Code editor.
- Code Navigation – Move quickly through your source code.
- Django tutorial
- Flask tutorial
Quick Start Guide for Python in VS Code
The Python extension makes Visual Studio Code an excellent Python editor, works on any operating system, and is usable with a variety of Python interpreters.
Get started by installing:
- VS Code
- A Python Interpreter (any actively supported Python version)
- Python extension from the VS Code Marketplace
To further customize VS Code for Python, you can leverage the Python profile template, automatically installing recommended extensions and settings. For Data Science projects, consider using the Data Science profile template.
See also
- Python environments – Control which Python interpreter is used for editing and debugging.
- Settings reference – Explore the full range of Python-related settings in VS Code.
Python scripts are Python code files saved with a .py extension. You can run these files on any device if it has Python installed on it. They are very versatile programs and can perform a variety of tasks like data analysis, web development, etc.
You might get these Python scripts if you are a beginner in Python so in this discussion, we will explore various techniques for executing a Python script.
IntelliSense for pytest
Pylance offers IntelliSense features that can help you work more efficiently with pytest fixtures and parameterized tests.
As you’re typing the parameters for your test function, Pylance will offer you a list of completions that includes argument names from
@pytest.mark.parametrize
decorators, as well as existing pytest fixtures defined in your tests file or in
conftest.py
. Code navigation features such as Go to Definition and Find All References and rename symbol refactoring are also supported.
When hovering over a fixture reference or a parameterized argument reference, Pylance will show the inferred type annotation, either based on the return values of the fixture, or based on the inferred types of the arguments passed to the parameterization decorator.
Pylance also offers code actions to add type annotations to test functions that have fixture parameters. Inlay hints for inferred fixture parameter types can also be enabled by setting
python.analysis.inlayHints.pytestParameters
to
true
in your User settings.
Types of Python environments
Global environments
By default, any Python interpreter installed runs in its own global environment. For example, if you just run
python
,
python3
, or
py
at a new terminal (depending on how you installed Python), you’re running in that interpreter’s global environment. Any packages that you install or uninstall affect the global environment and all programs that you run within it.
Tip: In Python, it is best practice to create a workspace-specific environment, for example, by using a local environment.
Local environments
There are two types of environments that you can create for your workspace: virtual and conda. These environments allow you to install packages without affecting other environments, isolating your workspace’s package installations.
Virtual environments
A virtual environment is a built-in way to create an environment. A virtual environment creates a folder that contains a copy (or symlink) to a specific interpreter. When you install packages into a virtual environment it will end up in this new folder, and thus isolated from other packages used by other workspaces.
Note: While it’s possible to open a virtual environment folder as a workspace, doing so is not recommended and might cause issues with using the Python extension.
Conda environments
A conda environment is a Python environment that’s managed using the
conda
package manager (see Getting started with conda).Choosing between conda and virtual environments depends on your packaging needs, team standards, etc.
Python environment tools
The following table lists the various tools involved with Python environments:
Tool | Definition and Purpose |
pip | The Python package manager that installs and updates packages. It’s installed with Python 3.9+ by default (unless you are on a Debian-based OS; install |
venv | Allows you to manage separate package installations for different projects and is installed with Python 3 by default (unless you are on a Debian-based OS; install |
conda | Installed with Miniconda. It can be used to manage both packages and virtual environments. Generally used for data science projects. |
Testing
The Python extension supports testing with Python’s built-in unittest framework and pytest.
In order to run tests, you must enable one of the supported testing frameworks in the settings of your project. Each framework has its own specific settings, such as arguments for identifying the paths and patterns for test discovery.
Once the tests have been discovered, VS Code provides a variety of commands (on the Status Bar, the Command Palette, and elsewhere) to run and debug tests. These commands also allow you to run individual test files and methods
Next steps
- Editing code – Learn about autocomplete, IntelliSense, formatting, and refactoring for Python.
- Debugging – Learn to debug Python both locally and remotely.
- Testing – Configure test environments and discover, run, and debug tests.
- Settings reference – Explore the full range of Python-related settings in VS Code.
Create a Python source code file
From the File Explorer toolbar, select the New File button on the
hello
folder:
Name the file
hello.py
, and VS Code will automatically open it in the editor:
By using the
.py
file extension, you tell VS Code to interpret this file as a Python program, so that it evaluates the contents with the Python extension and the selected interpreter.
Note: The File Explorer toolbar also allows you to create folders within your workspace to better organize your code. You can use the New folder button to quickly create a folder.
Now that you have a code file in your Workspace, enter the following source code in
hello.py
:
msg = "Roll a dice" print(msg)
When you start typing
IntelliSense and auto-completions work for standard Python modules as well as other packages you’ve installed into the environment of the selected Python interpreter. It also provides completions for methods available on object types. For example, because the
msg
variable contains a string, IntelliSense provides string methods when you type
msg.
:
Finally, save the file (⌘S (Windows, Linux Ctrl+S)). At this point, you’re ready to run your first Python file in VS Code.
For full details on editing, formatting, and refactoring, see Editing code. The Python extension also has full support for Linting.
Next steps
To learn how to build web apps with popular Python web frameworks, see the following tutorials:
There is then much more to explore with Python in Visual Studio Code:
- Python profile template – Create a new profile with a curated set of extensions, settings, and snippets
- Editing code – Learn about autocomplete, IntelliSense, formatting, and refactoring for Python.
- Linting – Enable, configure, and apply a variety of Python linters.
- Debugging – Learn to debug Python both locally and remotely.
- Testing – Configure test environments and discover, run, and debug tests.
- Settings reference – Explore the full range of Python-related settings in VS Code.
- Deploy Python to Azure App Service
- Deploy Python to Container Apps
Python testing in Visual Studio Code
The Python extension supports testing with Python’s built-in unittest framework and pytest.
Free Python and Data Science lessons
NASA-inspired lessons
This learning path enables students to use Python to explore doing analyses and projects inspired from real-world problems faced by National Aeronautics and Space Administration (NASA) scientists. View full details of the lessons under NASA-inspired Lessons.
Learn Python with Over The Moon
These space-themed lessons were inspired by the Netflix film, Over the Moon, and will introduce students to data science, machine learning, and artificial intelligence using Python and Azure. View full details on Learn Python with Over The Moon.
Wonder Woman-inspired lessons
Give an introduction to Python with “Wonder Woman 1984”-inspired lessons that help students learn about the basics like conditionals and variables. Get full lesson details under Learn Python with Wonder Woman.
Python in Notebooks
Learn the basics of Python. View the full lesson at Write basic Python in Notebooks in Visual Studio Code.
Set up your Python beginner development environment
A step-by-step guide to installing and setting up your Python and VS Code environment. View the full lesson at Set up your Python beginner development environment with Visual Studio Code.
There is a lot of confusion around Visual Studio Code tasks and the debugger. Let’s discuss about it first so that we understand when to use tasks and when to use the debugger.
Configure and run the debugger
Let’s now try debugging our Python program. Debugging support is provided by the Python Debugger extension, which is automatically installed with the Python extension. To ensure it has been installed correctly, open the Extensions view (⇧⌘X (Windows, Linux Ctrl+Shift+X)) and search for
@installed python debugger
. You should see the Python Debugger extension listed in the results.
Next, set a breakpoint on line 2 of
hello.py
by placing the cursor on the
Next, to initialize the debugger, press F5. Since this is your first time debugging this file, a configuration menu will open from the Command Palette allowing you to select the type of debug configuration you would like for the opened file.
Note: VS Code uses JSON files for all of its various configurations;
launch.json
is the standard name for a file containing debugging configurations.
Select Python File, which is the configuration that runs the current file shown in the editor using the currently selected Python interpreter.
The debugger will start, and then stop at the first line of the file breakpoint. The current line is indicated with a yellow arrow in the left margin. If you examine the Local variables window at this point, you can see that the
msg
variable appears in the Local pane.
A debug toolbar appears along the top with the following commands from left to right: continue (F5), step over (F10), step into (F11), step out (⇧F11 (Windows, Linux Shift+F11)), restart (⇧⌘F5 (Windows, Linux Ctrl+Shift+F5)), and stop (⇧F5 (Windows, Linux Shift+F5)).
The Status Bar also changes color (orange in many themes) to indicate that you’re in debug mode. The Python Debug Console also appears automatically in the lower right panel to show the commands being run, along with the program output.
To continue running the program, select the continue command on the debug toolbar (F5). The debugger runs the program to the end.
Tip Debugging information can also be seen by hovering over code, such as variables. In the case of
msg
, hovering over the variable will display the string
Roll a dice!
in a box above the variable.
You can also work with variables in the Debug Console (If you don’t see it, select Debug Console in the lower right area of VS Code, or select it from the … menu.) Then try entering the following lines, one by one, at the > prompt at the bottom of the console:
msg msg.capitalize() msg.split()
Select the blue Continue button on the toolbar again (or press F5) to run the program to completion. “Roll a dice!” appears in the Python Debug Console if you switch back to it, and VS Code exits debugging mode once the program is complete.
If you restart the debugger, the debugger again stops on the first breakpoint.
To stop running a program before it’s complete, use the red square stop button on the debug toolbar (⇧F5 (Windows, Linux Shift+F5)), or use the Run > Stop debugging menu command.
For full details, see Debugging configurations, which includes notes on how to use a specific Python interpreter for debugging.
Tip: Use Logpoints instead of print statements: Developers often litter source code with
Configuring the debugger
To configure the debugger, go through the documentation. In summary it says, you should modify the
launch.json
file. For starters, to run the code in integrated terminal (inside Visual Studio Code), use –
{
"name": "Python: Current File (Integrated Terminal)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
}
To run the code in an external terminal (outside of Visual Studio Code), use –
{
"name": "Python: Current File (External Terminal)",
"type": "python",
"request": "launch",
"program": "${file}",
"console": "externalTerminal"
}
N.B. If all documentation was easy to search and understand then we probably would not need Stack Overflow. Fortunately, the documentation I mentioned in this post is really easy to understand. Please feel free to read, ponder and enjoy.
Run Python code
To experience Python, create a file (using the File Explorer) named
hello.py
and paste in the following code:
print("Hello World")
The Python extension then provides shortcuts to run Python code using the currently selected interpreter (Python: Select Interpreter in the Command Palette). To run the active Python file, click the Run Python File in Terminal play button in the top-right side of the editor.
You can also run individual lines or a selection of code with the Python: Run Selection/Line in Python Terminal command (Shift+Enter). If there isn’t a selection, the line with your cursor will be run in the Python Terminal. An identical Run Selection/Line in Python Terminal command is available on the context menu for a selection in the editor. The same terminal will be used every time you run a selection or a line in the terminal/REPL, until that terminal is closed. The same terminal is also used for Run Python File in Terminal. If that terminal is still running the REPL, you should exit the REPL (
exit()
) or switch to a different terminal before running a Python file.
The Python extension automatically removes indents based on the first non-empty line of the selection, shifting all other lines left as needed.
The command opens the Python Terminal if necessary; you can also open the interactive REPL environment directly using the Python: Start REPL command that activates a terminal with the currently selected interpreter and then runs the Python REPL.
For a more specific walkthrough and other ways of running code, see the run code tutorial.
Other popular Python extensions
The Microsoft Python extension provides all of the features described previously in this article. Additional Python language support can be added to VS Code by installing other popular Python extensions.
- Open the Extensions view (⇧⌘X (Windows, Linux Ctrl+Shift+X)).
- Filter the extension list by typing ‘python’.
The extensions shown above are dynamically queried. Click on an extension tile above to read the description and reviews to decide which extension is best for you. See more in the Marketplace.
Installing Essential VSCode Python Extensions
The VSCode’s Python extensions will provide us with the helping functionalities for code editing, docstrings, linting, formatting, debugging, testing, and environment selection.
How to install a VSCode Extension
Click on the box icon on the activity bar or use a keyboard shortcut: Ctrl + Shift + X to open the extension panel. Type any keyword in the search bar to explore all kinds of extensions.
Install VSCode Python extension
In our case, we will type Python and install the Python extension by clicking on the install button, as shown above.
List of Essential Python Extensions
Python
The Python extension automatically installs Pylance, Jupyter, and isort extensions. It comes with a complete collection of tools for Data Science, web development, and software engineering.
Key Features:
Python extension comes with IntelliSense, linting, debugging, code navigation, code formatting, refactoring, variable explorer, and test explorer.
- IntelliSense (code autocomplete)
- Linting (Pylint, Flake8)
- Code formatting (black, autopep)
- Debugging
- Testing (unittest, pytest)
- Jupyter Notebooks
- Environments (venv, pipenv, conda)
- Refactoring
Indent-rainbow
Indent-rainbow extensions provide us with a multilevel colorized indentation for improved code readability. We get alternating colors on each step, and it helps us avoid common indentation errors.
Python Indent
Python Indent extension helps us with creating indentations. By pressing the Enter key, the extension will parse the Python file and determine how the next line should be indented. It is a time saver.
Jupyter Notebook Renderers
Jupyter Notebook Renderers is part of the Jupyter extension pack. It helps us render plotly, vega, gif, png, svg, and jpeg output.
autoDocstring
The autoDocstring extension helps us quickly generate docstring for Python functions. By typing triple quotes “”” or ”’ within the function, we can generate and modify docstring. Learn more about doc strings by following our Python Docstrings tutorial.
Note: Most Python development extensions and features come with Python extensions.
Run tests
You can run tests using any of the following actions:
-
With a test file open, select the green run icon that is displayed in the gutter next to the test definition line, as shown in the previous section. This command runs only that one method.
-
From the Command Palette, by running any of the following commands:
- Test: Run All Tests – Runs all tests that have been discovered.
- Test: Run Tests in Current File – Runs all tests in a file that that is open in the editor.
- Test: Run Test at Cursor – Runs only the test method under your cursor in the editor.
-
From the Test Explorer:
-
To run all discovered tests, select the play button at the top of Test Explorer:
-
To run a specific group of tests, or a single test, select the file, class, or test, then select the play button to the right of that item:
-
You can also run a selection of tests through the Test Explorer. To do that, Ctrl+Click (or Cmd+Click on macOS) on the tests you wish to run, right-click on one of them and then select Run Test.
-
After a test run, VS Code displays results directly in the editor as gutter decorations. Failed tests will also be highlighted in the editor, with a Peek View that displays the test run error message and a history of all of the tests’ runs. You can press Escape to dismiss the view, and you can disable it by opening the User settings (Preferences: Open Settings (UI) command in the Command Palette) and changing the value of the Testing: Automatically Open Peek View setting to
never
.
In the Test Explorer, results are shown for individual tests and any classes and files containing those tests. Folders will display a failure icon if any of the tests within that folder did not pass.
VS Code also shows test results in the Python Test Log output panel.
Tasks
The official documentation says –
Lots of tools exist to automate tasks like linting, building,
packaging, testing, or deploying software systems. Examples include
the TypeScript Compiler, linters like ESLint and TSLint as well as
build systems like Make, Ant, Gulp, Jake, Rake, and MSBuild.…. Tasks in VS Code can be configured to run scripts and start
processes so that many of these existing tools can be used from within
VS Code without having to enter a command line or write new code.
So, tasks are not for debugging, compiling or executing our programs.
What is Python Script?
Python is a well-known high-level programming language. The Python script is a file containing Python-written code. The file containing Python script has the extension ‘.py’ or can also have the extension ‘.pyw’ if it is being run on a Windows 10 machine.
To run a Python script, we need a Python interpreter installed on the device. In this article, we will learn how to run a Python script.
Why use VSCode for Python?
Virtual Studio Code (VSCode) is a perfect Integrated Development Environment for Python. It is simple and comes with built-in features that enhance the development experience. VSCode Python extensions come with powerful features like syntax autocomplete, linting, debugging, unit testing, GitOps, virtual environments, notebooks, editing tools, and the ability to customize the editor.
Key Features:
- Command Palette to access all commands by typing keywords.
- Fully customizable keyboard shortcuts.
- Jupyter extension for data science. Run Jupyter notebook within the IDE.
- Auto linting and formatting.
- Debugging and Testing.
- Git integration.
- Custom code snippets.
- Enhanced editing tools. Multi cursor selection, column selection, outline view, side-by-side preview, and search and modify.
In this tutorial, we will start by installing Python and VSCode, then run a Python script in VSCode. After that, we will customize the editor to enhance the Python development experience by installing essential extensions and learning about built-in features. In the end, we will learn about Python productivity hacks.
Create your own Python environment
The extension uses a pre-configured Python environment based on the CPython WebAssembly builds. The build used is
Python-3.11.0-wasm32-wasi-16.zip
.
You can create your own Python environment, including source wheel Python packages, following these steps:
-
Create a new GitHub repository.
-
Download a wasm-wasi-16 build from cpython-wasm-test/releases and expand it into the root of the repository.
-
To add source wheel packages, do the following:
-
Create a
site-packages
folder in the root. -
Install the package using the following command
pip install my_package --target ./site-packages
. Note that you need to have a Python installation in your OS including pip.
-
Create a
- Create a
-
Commit the changes.
-
Change the
python.wasm.runtime
setting to point to your GitHub repository. For example:
{ "python.wasm.runtime": "https://github.com/dbaeumer/python-3.11.0" }
Code Actions
Code Actions (also known as Quick Fixes) are provided to help fix issues when there are warnings in your code. These helpful hints are displayed in the editor left margin as a lightbulb (💡). Select the light bulb to display Code Action options. These Code Action can come from extensions such as Python, Pylance, or VS Code itself. For more information about Code Actions, see Python Quick Fixes.
Getting Started with Python in VS Code
In this tutorial, you will learn how to use Python 3 in Visual Studio Code to create, run, and debug a Python “Roll a dice” application, work with virtual environments, use packages, and more! By using the Python extension, you turn VS Code into a great, lightweight Python editor.
If you are new to programming, check out the Visual Studio Code for Education – Introduction to Python course. This course offers a comprehensive introduction to Python, featuring structured modules in a ready-to-code browser-based development environment.
To gain a deeper understanding of the Python language, you can explore any of the programming tutorials listed on python.org within the context of VS Code.
For a Data Science focused tutorial with Python, check out our Data Science section.
Start VS Code in a workspace folder
By starting VS Code in a folder, that folder becomes your “workspace”.
Using a command prompt or terminal, create an empty folder called “hello”, navigate into it, and open VS Code (
code
) in that folder () by entering the following commands:
mkdir hello cd hello code .
Note: If you’re using an Anaconda distribution, be sure to use an Anaconda command prompt.
Alternately, you can create a folder through the operating system UI, then use VS Code’s File > Open Folder to open the project folder.
Run Python code
Click the Run Python File in Terminal play button in the top-right side of the editor.
The button opens a terminal panel in which your Python interpreter is automatically activated, then runs
python3 hello.py
(macOS/Linux) or
python hello.py
(Windows):
There are three other ways you can run Python code within VS Code:
-
Right-click anywhere in the editor window and select Run > Python File in Terminal (which saves the file automatically):
-
Select one or more lines, then press Shift+Enter or right-click and select Run Selection/Line in Python Terminal. This command is convenient for testing just a part of a file.
-
From the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)), select the Python: Start REPL command to open a REPL terminal for the currently selected Python interpreter. In the REPL, you can then enter and run lines of code one at a time.
Congrats, you just ran your first Python code in Visual Studio Code!
Test configuration settings
The behavior of testing with Python is driven by general UI settings provided by VS Code, and settings that are specific to Python and to whichever framework you’ve enabled.
General UI settings
The settings that affect the UI of the testing features are provided by VS Code itself, and can be found in the VS Code Settings editor when you search for “Testing”.
General Python settings
Setting
(python.testing.) |
Default | Description |
autoTestDiscoverOnSaveEnabled | Specifies whether to enable or disable auto run test discovery when saving a test file. You may need to reload the window after making changes to this setting for it to be applied. | |
cwd | null | Specifies an optional working directory for tests. |
debugPort | Port number used for debugging of unittest tests. | |
promptToConfigure | Specifies whether VS Code prompts to configure a test framework if potential tests are discovered. |
unittest configuration settings
Unittest setting
(python.testing.) |
Default | Description |
unittestEnabled | Specifies whether unittest is enabled as the test framework. The equivalent setting for pytest should be disabled. | |
unittestArgs | Arguments to pass to unittest, where each element that’s separated by a space is a separate item in the list. See below for a description of the defaults. |
The default arguments for unittest are as follows:
-
-v
sets default verbosity. Remove this argument for simpler output. -
-s .
specifies the starting directory for discovering tests. If you have tests in a “test” folder, change the argument to
-s test
(meaning
"-s", "test"
in the arguments array). -
-p *test*.py
is the discovery pattern used to look for tests. In this case, it’s any
.py
file that includes the word “test”. If you name test files differently, such as appending “_test” to every filename, then use a pattern like
*_test.py
in the appropriate argument of the array.
To stop a test run on the first failure, add the fail fast option
"-f"
to the arguments array.
See unittest command-line interface for the full set of available options.
pytest configuration settings
pytest setting
(python.testing.) |
Default | Description |
pytestEnabled | Specifies whether pytest is enabled as the test framework. The equivalent setting for unittest should be disabled. | |
pytestPath | Path to pytest. Use a full path if pytest is located outside the current environment. | |
pytestArgs | Arguments to pass to pytest, where each element that’s separated by a space is a separate item in the list. See pytest command-line options. |
You can also configure pytest using a
pytest.ini
file as described on pytest Configuration.
Note If you have the pytest-cov coverage module installed, VS Code doesn’t stop at breakpoints while debugging because pytest-cov is using the same technique to access the source code being run. To prevent this behavior, include
--no-cov
in
pytestArgs
when debugging tests, for example by adding
"env": {"PYTEST_ADDOPTS": "--no-cov"}
to your debug configuration. (See Debug Tests above about how to set up that launch configuration.) (For more information, see Debuggers and PyCharm in the pytest-cov documentation.)
IntelliSense settings
IntelliSense setting
(python.analysis.) |
Default | Description |
inlayHints.pytestParameters | false | Whether to display inlay hints for pytest fixture argument types. Accepted values are |
Creating environments
Using the Create Environment command
To create local environments in VS Code using virtual environments or Anaconda, you can follow these steps: open the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)), search for the Python: Create Environment command, and select it.
The command presents a list of environment types: Venv or Conda.
If you are creating an environment using Venv, the command presents a list of interpreters that can be used as a base for the new virtual environment.
If you are creating an environment using Conda, the command presents a list of Python versions that can be used for your project.
After selecting the desired interpreter or Python version, a notification will show the progress of the environment creation and the environment folder will appear in your workspace.
Note: The command will also install necessary packages outlined in a requirements/dependencies file, such as
requirements.txt
,
pyproject.toml
, or
environment.yml
, located in the project folder. It will also add a
.gitignore
file to the virtual environment to help prevent you from accidentally committing the virtual environment to source control.
Create a virtual environment in the terminal
If you choose to create a virtual environment manually, use the following command (where “.venv” is the name of the environment folder):
# macOS/Linux # You may need to run `sudo apt-get install python3-venv` first on Debian-based OSs python3 -m venv .venv # Windows # You can also use `py -3 -m venv .venv` python -m venv .venv
Note: To learn more about the
venv
module, read Creation of virtual environments on Python.org.
When you create a new virtual environment, a prompt will be displayed in VS Code to allow you to select it for the workspace.
Tip: Make sure to update your source control settings to prevent accidentally committing your virtual environment (in for example
.gitignore
). Since virtual environments are not portable, it typically does not make sense to commit them for others to use.
Create a conda environment in the terminal
The Python extension automatically detects existing conda environments. We recommend you install a Python interpreter into your conda environment, otherwise one will be installed for you after you select the environment. For example, the following command creates a conda environment named
env-01
with a Python 3.9 interpreter and several libraries:
conda create -n env-01 python=3.9 scipy=0.15.0 numpy
Note: For more information on the conda command line, you can read Conda environments.
Additional notes:
-
If you create a new conda environment while VS Code is running, use the refresh icon on the top right of the Python: Select Interpreter window; otherwise you may not find the environment there.
-
To ensure the environment is properly set up from a shell perspective, use an Anaconda prompt and activate the desired environment. Then, you can launch VS Code by entering the
code .
command. Once VS Code is open, you can select the interpreter either by using the Command Palette or by clicking on the status bar. -
Although the Python extension for VS Code doesn’t currently have direct integration with conda
environment.yml
files, VS Code itself is a great YAML editor. -
Conda environments can’t be automatically activated in the VS Code Integrated Terminal if the default shell is set to PowerShell. To change the shell, see Integrated terminal – Terminal profiles.
-
You can manually specify the path to the
conda
executable to use for activation (version 4.4+). To do so, open the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) and run Preferences: Open User Settings. Then set
python.condaPath
, which is in the Python extension section of User Settings, with the appropriate path.
Git Integration
VSCode comes with built-in Git integration. No more writing Git commands on terminals. Git integration provides a user-friendly GUI and helpful functions for diff, views, staging, branching, committing, merge, and more.
Check out our Git Cheat Sheet to learn about the various Git commands and functionalities.
Note: To enable Git integration, you need to install Git from official site.
Initializing Git
We can access it through the action bar or by using the keyboard shortcut: Ctrl + Shift + G. Before we start committing, we need to initialize the repository.
Git Commit
After that, add and commit the changes with the message. It is that simple.
Create a GitHub repository and push the code
You can even create a GitHub repository and push your code to a remote server by logging into your GitHub account.
Private GitHub repository
We have created a GitHub private repository of Python files and folders.
You can now simply commit and push the changes to the remote server without leaving the VSCode.
Follow our Github and Git tutorial to learn everything about Git and GitHub.
Intro to CS at Harvey Mudd College
Professor Zachary Dodds is a Computer Science professor at Harvey Mudd College who teaches several introductory classes both for students new to Computer Science and students from a non-Computer Science background. He co-created the popular introduction to Computer Science class CS5, which attracts students from all backgrounds to develop programming and problem-solving skills and to build “a coherent, intellectually compelling picture of Computer Science”. The class is taught with Python and uses VS Code as the recommended editor.
Why Visual Studio Code?
Professor Dodds has been recommending and using Visual Studio Code in his classes since it debuted in 2015.
“Visual Studio Code is the best balance of authenticity and accessibility… Visual Studio Code doesn’t feel ‘fake’, it’s what real software developers use. Plus, Visual Studio Code works on every OS!”
VS Code runs on Windows, macOS, Linux, and even Chromebooks.
Classroom settings
Since VS Code is easy to customize, Professor Dodds is able to tailor the editor for his students, preferring to hide IntelliSense, or code completion suggestions, so they can learn from what they type and reinforce the conceptual models being built.
Here are the settings his students use:
"editor.quickSuggestions": false, "editor.acceptSuggestionOnCommitCharacter": false, "editor.suggest.filterGraceful": true, "editor.suggestOnTriggerCharacters": false, "editor.acceptSuggestionOnEnter": "on", "editor.suggest.showIcons": false, "editor.suggest.maxVisibleSuggestions": 7, "editor.hover.enabled": false, "editor.hover.sticky": false, "editor.suggest.snippetsPreventQuickSuggestions": false, "editor.parameterHints.enabled": false, "editor.wordBasedSuggestions": "matchingDocuments", "editor.tabCompletion": "on", "extensions.ignoreRecommendations": true, "files.autoSave": "afterDelay",
You can find the most up-to-date settings on his course website: CS5 – Python Tips.
Integrated Terminal
Professor Dodds also utilizes the built-in terminal heavily in his class as an introduction to running programs from the command line and navigating around their machine all within Visual Studio Code. He appreciates how “the built-in terminal panel does not try to automate too much (which, if it did, would deprive newcomers of the experience of the information-flow that’s going on).”
In the video below, the student does all of their command line and coding work in one place, such as installing Python libraries, while working on Lab 3 from the CS5 class:
Thank you, Professor Dodds, for sharing your story! If you’re interested in using VS Code to teach Python in your classes, you can get started with the Python Education Extension Pack below!
Prerequisites
The following prerequisites are needed to use the extension:
- You need to have the GitHub Repositories extension installed.
- You need to authenticate with GitHub.
- You need to use a browser that supports cross-origin isolation. The extension has been tested with the Microsoft Edge and Google Chrome browsers.
-
You need to use the insider version of VS Code for the Web (for example
https://insiders.vscode.dev/
) - Your source code must be hosted either on your local file system or a GitHub repository that is accessed through the GitHub Repositories extension.
-
When starting VS Code for the Web, you need to add the following query parameter to the end of the URL:
?vscode-coi=
.
Debugger
If we check the debugger documentation, we will find there is something called run mode. It says –
In addition to debugging a program, VS Code supports running the
program. The Debug: Start Without Debugging action is triggered with
Ctrl+F5 and uses the currently selected launch configuration. Many of
the launch configuration attributes are supported in ‘Run’ mode. VS
Code maintains a debug session while the program is running, and
pressing the Stop button terminates the program.
So, press F5 and Visual Studio Code will try to debug your currently active file.
Press Ctrl + F5 and Visual Studio Code will ignore your breakpoints and run the code.
A little background on unit testing
(If you’re already familiar with unit testing, you can skip to the walkthroughs.)
A unit is a specific piece of code to be tested, such as a function or a class. Unit tests are then other pieces of code that specifically exercise the code unit with a full range of different inputs, including boundary and edge cases. Both the unittest and pytest frameworks can be used to write unit tests.
For example, say you have a function to validate the format of an account number that a user enters in a web form:
def validate_account_number_format(account_string): # Return False if invalid, True if valid # ...
Unit tests are concerned only with the unit’s interface—its arguments and return values—not with its implementation (which is why no code is shown here in the function body; often you’d be using other well-tested libraries to help implement the function). In this example, the function accepts any string and returns true if that string contains a properly formatted account number, false otherwise.
To thoroughly test this function, you want to throw at it every conceivable input: valid strings, mistyped strings (off by one or two characters, or containing invalid characters), strings that are too short or too long, blank strings, null arguments, strings containing control characters (non-text codes), string containing HTML, strings containing injection attacks (such as SQL commands or JavaScript code), and so on. It’s especially important to test security cases like injection attacks if the validated string is later used in database queries or displayed in the app’s UI.
For each input, you then define the function’s expected return value (or values). In this example, again, the function should return true for only properly formatted strings. (Whether the number itself is a real account is a different matter that would be handled elsewhere through a database query.)
With all the arguments and expected return values in hand, you now write the tests themselves, which are pieces of code that call the function with a particular input, then compare the actual return value with the expected return value (this comparison is called an assertion):
# Import the code to be tested import validator # Import the test framework (this is a hypothetical module) import test_framework # This is a generalized example, not specific to a test framework class Test_TestAccountValidator(test_framework.TestBaseClass): def test_validator_valid_string(): # The exact assertion call depends on the framework as well assert(validate_account_number_format("1234567890"), True) # ... def test_validator_blank_string(): # The exact assertion call depends on the framework as well assert(validate_account_number_format(""), False) # ... def test_validator_sql_injection(): # The exact assertion call depends on the framework as well assert(validate_account_number_format("drop database master"), False) # ... tests for all other cases
The exact structure of the code depends on the test framework you’re using, and specific examples are provided later in this article. In any case, as you can see, each test is simple: invoke the function with an argument and assert the expected return value.
The combined results of all the tests is your test report, which tells you whether the function (the unit), is behaving as expected across all test cases. That is, when a unit passes all of its tests, you can be confident that it’s functioning properly. (The practice of test-driven development is where you actually write the tests first, then write the code to pass increasingly more tests until all of them pass.)
Because unit tests are small, isolated pieces of code (in unit testing you avoid external dependencies and use mock data or otherwise simulated inputs), they’re quick and inexpensive to run. This characteristic means that you can run unit tests early and often. Developers typically run unit tests even before committing code to a repository; gated check-in systems can also run unit tests before merging a commit. Many continuous integration systems also run unit tests after every build. Running the unit test early and often means that you quickly catch regressions, which are unexpected changes in the behavior of code that previously passed all its unit tests. Because the test failure can easily be traced to a particular code change, it’s easy to find and remedy the cause of the failure, which is undoubtedly better than discovering a problem much later in the process!
For a general background on unit testing, read Unit testing on Wikipedia. For useful unit test examples, you can review https://github.com/gwtw/py-sorting, a repository with tests for different sorting algorithms.
Visual Studio Code Python for Data Science
Visual Studio Code allows users to simply run the data science code in Jupyter Notebook. We can run the cell and visualize the result within VSCode. It supports all kinds of programming languages and comes with built-in features to mimic the browser-based Jupyter notebook that we all love.
Learn more about Jupyter Notebooks by reading our How to use Jupyter Notebook tutorial.
To use the Jupyter notebook extension, we need to first install a Jupyter notebook.
pip install jupyterlab
Or
pip install notebook
Note: Jupyter Notebook and Jupyter Lab come with Anaconda Distribution, so we don’t have to install anything.
Install Jupyter Extension
After that, install the Jupyter extension from the Visual Studio marketplace.
To create a Jupyter notebook file, we can either create a new file with .ipynb extension or access the command palette (Ctrl+Shift+P) and select Jupyter: Create New Jupyter Notebook.
Pick the Ipython Kernel
To initialize the Jupyter server, we need to select the kernel by clicking on the kernel picker in the top right of the notebook, as shown in the image.
Note: By default, Anaconda comes with Python version 3.9.13. You can download the latest version of Python 3.11, but it won’t support all packages.
Run the Jupyter cell
Write a print expression to display “Hello World” and press the run button.
Add another cell
You can use the B key or click on + Code to add a new cell and run the cell with Ctrl + ⤶ Enter. You can learn about Jupyter keyboard shortcuts on defkey.
For R language users, we have got a Notebooks for R tutorial. You will learn to use R in a Jupyter Notebook and useful features.
Note: if you are looking for a hassle-free way of using Jupyter Notebook, then try DataCamp Workspace. It comes with essential Python libraries, a pre-build environment, and it supports various database integration.
Python profile template
Profiles let you quickly switch your extensions, settings, and UI layout depending on your current project or task. To help you get started with Python development, you can use the Python profile template, which is a curated profile with useful extensions, settings, and snippets. You can use the profile template as is or use it as a starting point to customize further for you own workflows.
You select a profile template through the Profiles > Create Profile… dropdown:
Once you select a profile template, you can review the settings and extensions, and remove individual items if you don’t want to include them in your new Profile. After creating the new profile based on the template, changes made to settings, extensions, or UI are persisted in your profile.
Environments
The Python extension automatically detects Python interpreters that are installed in standard locations. It also detects conda environments as well as virtual environments in the workspace folder. See Configuring Python environments.
The current environment is shown on the right side of the VS Code Status Bar:
The Status Bar also indicates if no interpreter is selected:
The selected environment is used for IntelliSense, auto-completions, linting, formatting, and any other language-related feature. It is also activated when you run or debug Python in a terminal, or when you create a new terminal with the Terminal: Create New Terminal command.
To change the current interpreter, which includes switching to conda or virtual environments, select the interpreter name on the Status Bar or use the Python: Select Interpreter command.
VS Code prompts you with a list of detected environments as well as any you’ve added manually to your user settings (see Configuring Python environments).
Enhance completions with AI
GitHub Copilot is an AI-powered code completion tool that helps you write code faster and smarter. You can use the GitHub Copilot extension in VS Code to generate code, or to learn from the code it generates.
GitHub Copilot provides suggestions for languages beyond Python and a wide variety of frameworks, including JavaScript, TypeScript, Ruby, Go, C# and C++.
You can learn more about how to get started with Copilot in the Copilot documentation.
Configuring Linting and Formatting in VSCode
Linting
Linting highlights the problems in the Python source code and provides us with suggestions. It generally highlights syntactical and stylistic issues. Linting helps you identify and correct coding issues that can lead to errors.
You can select the linting method by selecting Python: Select Linter command in the command palette (Ctrl+Shift+P). You can also manually enable the linting method in settings.
Select linting method
In our case, we have selected the flake8 method. You can also review the list of available linting methods.
- Enable/ Disable Linting: select Python: Enable/Disable Linting in command palette.
- Run Linting: command palette (Ctrl+Shift+P) > Python: Run Linting.
Fixing the error
After running the Python linter, you will see the issues with the suggestions.
Note: Enabling a different linter will prompt you to install the required Python package.
Formatting
Formatting makes code readable. It follows specific rules for line spacing, indents, spacing around operators, and closing brackets. The Python extension supports three Python formatting methods: autopep8, black, or yapf.
By reading about PEP-8: Python Naming Conventions & Code Standards, you can learn Python’s style guide and formatting rules.
Select the Python formatter
To access the formatting option, we have to open the settings panel by going to Preferences -> Settings or using the keyboard shortcut: Ctrl +,. After that, type “python formatting provider” in the search bar and select “black” from the dropdown menu.
Configure Python formatter
For formatting the Python file on save, we have to search for format on save in the Settings and enable the Editor: Format on Save option.
Limitations
The Python for the Web support doesn’t provide all the features available when running source code on your local machine. The major limitations in the Python interpreter are:
- No socket support.
- No thread support. As a consequence, there is no async support.
- No pip support.
- No support for native Python modules.
Install Python and the Python extension
The tutorial guides you through installing Python and using the extension. You must install a Python interpreter yourself separately from the extension. For a quick install, use Python from python.org and install the extension from the VS Code Marketplace.
Note: To help get you started with Python development, you can use the Python profile template that includes useful extensions, settings, and Python code snippets.
Once you have a version of Python installed, select it using the Python: Select Interpreter command. If VS Code doesn’t automatically locate the interpreter you’re looking for, refer to Environments – Manually specify an interpreter.
You can configure the Python extension through settings. Learn more in the Python Settings reference.
Windows Subsystem for Linux: If you are on Windows, WSL is a great way to do Python development. You can run Linux distributions on Windows and Python is often already installed. When coupled with the WSL extension, you get full VS Code editing and debugging support while running in the context of WSL. To learn more, go to Developing in WSL or try the Working in WSL tutorial.
Environment variables
Environment variable definitions file
An environment variable definitions file is a text file containing key-value pairs in the form of
environment_variable=value
, with used for comments. Multiline values aren’t supported, but references to previously defined environment variables are allowed. Environment variable definitions files can be used for scenarios such as debugging and tool execution (including linters, formatters, IntelliSense, and testing tools), but aren’t applied to the terminal.
Note: Environment variable definitions files are not necessarily cross-platform. For instance, while Unix uses
as a path separator in environment variables, Windows uses. There is no normalization of such operating system differences, and so you need to make sure any environment definitions file use values that are compatible with your operating system.
By default, the Python extension looks for and loads a file named
.env
in the current workspace folder, then applies those definitions. The file is identified by the default entry
"python.envFile": "${workspaceFolder}/.env"
in your user settings (see General Python settings). You can change the
python.envFile
setting at any time to use a different definitions file.
Note: Environment variable definitions files are not used in all situations where environment variables are available for use. Unless Visual Studio Code documentation states otherwise, these only affect certain scenarios as per their definition. For example, the extension doesn’t use environment variable definitions files when resolving setting values.
A debug configuration also contains an
envFile
property that also defaults to the
.env
file in the current workspace (see Debugging – Set configuration options). This property allows you to easily set variables for debugging purposes that replace variables specified in the default
.env
file.
For example, when developing a web application, you might want to easily switch between development and production servers. Instead of coding the different URLs and other settings into your application directly, you could use separate definitions files for each. For example:
dev.env file
# dev.env - development configuration # API endpoint MYPROJECT_APIENDPOINT=https://my.domain.com/api/dev/ # Variables for the database MYPROJECT_DBURL=https://my.domain.com/db/dev MYPROJECT_DBUSER=devadmin MYPROJECT_DBPASSWORD=!dfka**213=
prod.env file
# prod.env - production configuration # API endpoint MYPROJECT_APIENDPOINT=https://my.domain.com/api/ # Variables for the database MYPROJECT_DBURL=https://my.domain.com/db/ MYPROJECT_DBUSER=coreuser MYPROJECT_DBPASSWORD=kKKfa98*11@
You can then set the
python.envFile
setting to
${workspaceFolder}/prod.env
, then set the
envFile
property in the debug configuration to
${workspaceFolder}/dev.env
.
Note: When environment variables are specified using multiple methods, be aware that there is an order of precedence. All
env
variables defined in the
launch.json
file will override variables contained in the
.env
file, specified by the
python.envFile
setting (user or workspace). Similarly,
env
variables defined in the
launch.json
file will override the environment variables defined in the
envFile
that are specified in
launch.json
.
Use of the PYTHONPATH variable
The PYTHONPATH environment variable specifies additional locations where the Python interpreter should look for modules. In VS Code, PYTHONPATH can be set through the terminal settings (
terminal.integrated.env.*
) and/or within an
.env
file.
When the terminal settings are used, PYTHONPATH affects any tools that are run within the terminal by a user, as well as any action the extension performs for a user that is routed through the terminal such as debugging. However, in this case when the extension is performing an action that isn’t routed through the terminal, such as the use of a linter or formatter, then this setting won’t have an effect on module look-up.
Tips and Tricks for Efficient Python Development in VSCode
VSCode comes with awesome Python development features and extensions. We can customize them to our needs and improve the productivity. In this section, we will learn about tips and tricks for efficient Python development.
- Getting started: Help > Get Started. Learn about VSCode’s customization and features by following guided tutorials.
- Command Palette: access entire all available commands by using the Keyboard shortcut: Ctrl+Shift+P. By writing keywords, we can access specific commands.
- Keyboard shortcuts: better than command palettes. We can modify keyboard shortcuts or memorize them by using keyboard reference sheets. It will help us access the commands directly, instead of searching with the keyword.
- Command line: launch the VSCode editor through the command line interface by typing `code .`. We can also customize how the editor is launched by adding additional arguments.
- Errors and warnings: quick jump to errors and warnings in a project by using the keyboard shortcut: Ctrl+Shift+M. We can also cycle through the error with F8 or Shift+F8.
- Customization: VSCode allows us to customize themes, keyboard shortcuts, JSON validation, debugging settings, fonts, and many more. It is a fully customizable IDE.
- Extensions: other Python extensions improve our development experience. Look for popular extensions on the Visual Studio Marketplace.
- Multi cursor selection: is a lifesaver. Add cursors at arbitrary positions by using Alt+Click. It will allow us to modify multiple lines of code at once. We can also use Ctrl+Shift+L to modify all occurrences of the current selection.
- Search and modify: this is the best tool for searching and modifying multiple expressions at once. We can also rename the symbol by selecting the symbol and typing F2.
- Git integration: allows us to perform all Git-related tasks within IDE. It provides an easy-to-use GUI for diff, views, staging, branching, committing, merging, and more.
- Code Snippets: is our best friend. Just like Autohotkey, we are creating templates for repeating code patterns. To create a custom code snippet, select File > Preferences > Configure User Snippets and then select the language.
- GitHub Copilot: is a winner extension for all kinds of development. It enhances the coding experience with artificial intelligence (AI) by suggesting lines of code or entire functions.
Bonus: sync your settings by logging into your GitHub account. It will sync your settings across all of the machines.
Test discovery
By default, the Python extension attempts to discover tests once you enable a framework. You can also trigger test discovery at any time using the Test: Refresh Tests command from the Command Palette.
python.testing.autoTestDiscoverOnSaveEnabled
is set to
true
by default, meaning that test discovery is also performed automatically whenever you add, delete, or update any Python file in the workspace. To disable this feature, set the value to
false
, which can be done either in the Settings editor or in the
settings.json
file as described in the VS Code Settings documentation. You will need to reload the window for this setting to take effect.
Test discovery applies the discovery patterns for the current framework (which can be customized using the Test configuration settings). The default behavior is as follows:
-
python.testing.unittestArgs
: Looks for any Python (
.py
) file with “test” in the name in the top-level project folder. All test files must be importable modules or packages. You can customize the file matching pattern with the
-p
configuration setting, and customize the folder with the
-t
setting. -
python.testing.pytestArgs
: Looks for any Python (
.py
) file whose name begins with “test_” or ends with “_test”, located anywhere within the current folder and all subfolders.
Tip: Sometimes tests placed in subfolders aren’t discovered because such test files cannot be imported. To make them importable, create an empty file named
__init__.py
in that folder.
If the test discovery succeeds, you’ll see tests listed in the Test Explorer:
If discovery fails (for example, the test framework isn’t installed or you have a syntax error in your test file), you’ll see an error message displayed in the Test Explorer. You can check the Python output panel to see the entire error message (use the View > Output menu command to show the Output panel, then select Python from the dropdown on the right side).
Once VS Code recognizes tests, it provides several ways to run those tests as described in Run tests.
How to Run a Python Script?
Let’s go through the basic steps and understand how a script works.
Here is a simple code to print ‘Hello World!’.
To Execute this program, first we have to save it with the ‘.py’ extension. Then we can execute this file with the help of the terminal.
Here, the print() function is to print out any text written within the parenthesis. We can write the text that we want to be printed using either a single quote as shown in the above script or a double quote.
If you are coming from any other language then you will also notice that there is no semicolon at the end of the statement as, with Python, you do not need to specify a semicolon at the end of the line. And also we don’t need to include or import any files to run a simple Python script.
There are various ways to run a script in Python but before going toward the different ways to run a Python script, we first have to check whether a Python interpreter is installed on the system or not. So in Windows, open ‘cmd’ (Command Prompt) and type the following command.
python -V
This command will give the version number of the Python interpreter installed or will display an error if otherwise.
Run Python Script Interactively
In Python Interactive Mode, you can run your script line by line in a sequence. To enter an interactive mode, you will have to open Command Prompt on your Windows machine, type ‘python’ and press Enter.
Example1: Using Print Function
Run the following line in the interactive mode:
print(‘Hello World !’)
Output:
Example 2: Using Interactive Execution
Run the following lines one by one in the interactive mode.
name = “Aakash”print(“My name is ” + name)
Output:
Example 3: Interactive Mode Comparison
Run the following lines one by one in the interactive mode.
a = 1b = 3if a > b: print(“a is Greater”) else: print(“b is Greater”)
Output:
Note: To exit from this mode, press ‘Ctrl+Z’ and then press ‘Enter’ or type ‘exit()’ and then press Enter.
Run Python Script by the Command Line
Running Python scripts on Windows via the command line provides a direct and efficient way to execute code. It allows for easy navigation to the script’s directory and initiation, facilitating quick testing and automation.
Example 1: Using Script Filename
To run Python in the terminal, store it in a ‘.py’ file in the command line, we have to write the ‘python’ keyword before the file name in the command prompt. In this way we can run Python programs in cmd.
python hello.py
You can write your own file name in place of ‘hello.py’.
Output:
Example 2: Redirecting output
To run a Python script in Terminal from the command line, navigate to the script’s directory and use the python script_name.py command. Redirecting output involves using the > symbol followed by a file name to capture the script’s output in a file. For example, python script_name.py > output.txt redirects the standard output to a file named “output.txt.”
Output :
Output
Run a Script in Python using a Text Editor
To run Python script on a text editor like VS Code (Visual Studio Code) then you will have to do the following:
- Go to the extension section or press ‘Ctrl+Shift+X’ on Windows, then search and install the extension named ‘Python’ and ‘Code Runner’. Restart your vs code after that.
- Now, create a new file with the name ‘hello.py’ and write the below code in it:
print(‘Hello World!’)
- Then, right-click anywhere in the text area and select the option that says ‘Run Code’ or press ‘Ctrl+Alt+N’ to run the code.
Output:
Run Python Scripts using an IDE
To run Python script on an IDE (Integrated Development Environment) like PyCharm, you will have to do the following:
- Create a new project.
- Give a name to that project as ‘GfG’ and click on Create.
- Select the root directory with the project name we specified in the last step. Right-click on it, go to New, anto, and click on the ‘Python file’ option. Then give the name of the file as ‘hello’ (you can specify any name as per your project requirement). This will create a ‘hello.py’ file in the project root directory.
Note: You don’t have to specify the extension as it will take it automatically.
- Now write the below Python script to print the message:
print(‘Hello World !’)
- To run this Python script, Right click and select the ‘Run File in Python Console’ option. This will open a console box at the bottom and show the output there. We can also run using the Green Play Button at the top right corner of the IDE.
Output:
We have covered 4 different methods to run Python scripts on your device. You can use any of the above methods depending on your device. Running Python scripts is a very basic and easy task. It helps you in sharing your work and accessing other source work for learning.
Similar Reads:
Don’t miss your chance to ride the wave of the data revolution! Every industry is scaling new heights by tapping into the power of data. Sharpen your skills and become a part of the hottest trend in the 21st century.
Dive into the future of technology – explore the Complete Machine Learning and Data Science Program by GeeksforGeeks and stay ahead of the curve.
Last Updated :
21 Dec, 2023
Like Article
Save Article
Share your thoughts in the comments
Please Login to comment…
Python environments in VS Code
An “environment” in Python is the context in which a Python program runs that consists of an interpreter and any number of installed packages.
Note: If you’d like to become more familiar with the Python programming language, review More Python resources.
Install a Python interpreter
Along with the Python extension, you need to install a Python interpreter. Which interpreter you use is dependent on your specific needs, but some guidance is provided below.
Windows
Install Python from python.org. Use the Download Python button that appears first on the page to download the latest version.
Note: If you don’t have admin access, an additional option for installing Python on Windows is to use the Microsoft Store. The Microsoft Store provides installs of supported Python versions.
For additional information about using Python on Windows, see Using Python on Windows at Python.org
macOS
The system install of Python on macOS is not supported. Instead, a package management system like Homebrew is recommended. To install Python using Homebrew on macOS use
brew install python3
at the Terminal prompt.
Note: On macOS, make sure the location of your VS Code installation is included in your PATH environment variable. See these setup instructions for more information.
Linux
The built-in Python 3 installation on Linux works well, but to install other Python packages you must install
pip
with get-pip.py.
Other options
-
Data Science: If your primary purpose for using Python is Data Science, then you might consider a download from Anaconda. Anaconda provides not just a Python interpreter, but many useful libraries and tools for data science.
-
Windows Subsystem for Linux: If you are working on Windows and want a Linux environment for working with Python, the Windows Subsystem for Linux (WSL) is an option for you. If you choose this option, you’ll also want to install the WSL extension. For more information about using WSL with VS Code, see VS Code Remote Development or try the Working in WSL tutorial, which will walk you through setting up WSL, installing Python, and creating a Hello World application running in WSL.
Note: To verify that you’ve installed Python successfully on your machine, run one of the following commands (depending on your operating system):
Linux/macOS: open a Terminal Window and type the following command:
python3 --version
Windows: open a command prompt and run the following command:
py -3 --version
If the installation was successful, the output window should show the version of Python that you installed. Alternatively, you can use the
py -0
command in the VS Code integrated terminal to view the versions of python installed on your machine. The default interpreter is identified by an asterisk (*).
Run tests in parallel
Support for running tests in parallel with pytest is available through the
pytest-xdist
package. To enable parallel testing:
-
Open the integrated terminal and install the
pytest-xdist
package. For more details, refer to the project’s documentation page.For Windows
py -3 -m pip install pytest-xdist
For macOS/Linux
python3 -m pip install pytest-xdist
-
Next, create a file named
pytest.ini
in your project directory and add the content below, specifying the number of CPUs to be used. For example, to set it up for 4 CPUs:
[pytest] addopts=-n4
Or, if you are using a
pyproject.toml
file
[tool.pytest.ini_options] addopts="-n 4"
-
Run your tests, which will now be run in parallel.
Debugging and Testing in VSCode
Debugging
The Python extension comes with Debugging for all kinds of applications like multi-threaded, web, and remote applications. We can set breakpoints, inspect data, and run programs step by step.
Select a debug configuration
Launch the debug tab by clicking on the debug icon on the action bar or by using the keyboard shortcut Ctrl + Shift +D. To customize Debug options, click on create a launch.json file and select Python File.
Debug Panel
Run the Debug by clicking on the blue button Run and Debug, and it will run the Python file and show us the Variables, Watch, Call Stack, and breakpoints.
Quick debug
For quick debugging, you can always click on the down arrow beside the Run button and select Debug Python File.
Testing
The Python extension supports unittest and pytest testing frameworks. Instead of reading the test results in a terminal, you can review and resolve the issues within the Testing tab in an active bar.
Configure Python tests
After clicking on the Testing button, we will click on the Configure Python Tests button and select the testing framework. Usually, VSCode automatically detects the framework and displays all the tests in a tree view.
Learn about Python unit testing, implementing Python’s pytest testing framework by following our how to use pytest for unit testing tutorial.
Note: The testing example that we are using is from Visual Studio Code official documentation.
Run the unittest
We can run the Unit test by clicking on the Run Test button in the Testing tab and analyzing the results.
As we can observe, 1 of 2 tests have passed, and it has displayed the reasoning behind the failed result. VSCode testing is highly interactive and user-friendly.
Install and use packages
Let’s build upon the previous example by using packages.
In Python, packages are how you obtain any number of useful code libraries, typically from PyPI, that provide additional functionality to your program. For this example, you use the
numpy
package to generate a random number.
Return to the Explorer view (the top-most icon on the left side, which shows files), open
hello.py
, and paste in the following source code:
import numpy as np msg = "Roll a dice" print(msg) print(np.random.randint(1,9))
Tip: If you enter the above code by hand, you may find that auto-completions change the names after the
as
keywords when you press Enter at the end of a line. To avoid this, type a space, then Enter.
Next, run the file in the debugger using the “Python: Current file” configuration as described in the last section.
You should see the message, “ModuleNotFoundError: No module named ‘numpy'”. This message indicates that the required package isn’t available in your interpreter. If you’re using an Anaconda distribution or have previously installed the
numpy
package you may not see this message.
To install the
numpy
package, stop the debugger and use the Command Palette to run Terminal: Create New Terminal (⌃⇧` (Windows, Linux Ctrl+Shift+`)). This command opens a command prompt for your selected interpreter.
To install the required packages in your virtual environment, enter the following commands as appropriate for your operating system:
-
Install the packages
# Don't use with Anaconda distributions because they include matplotlib already. # macOS python3 -m pip install numpy # Windows (may require elevation) py -m pip install numpy # Linux (Debian) apt-get install python3-tk python3 -m pip install numpy
-
Now, rerun the program, with or without the debugger, to view the output!
Congrats on completing the Python tutorial! During the course of this tutorial, you learned how to create a Python project, create a virtual environment, run and debug your Python code, and install Python packages. Explore additional resources to learn how to get the most out of Python in Visual Studio Code!
Conclusion
VSCode is not just a code editor. It is a complete ecosystem for efficient Python development. It provides us with shortcuts, Commands Palette, IntelliSense, linting, formatting, debugging, formatting, Git integrations, Jupyter notebook, third-party extensions, and a fully customizable development experience.
VSCode is highly recommended to beginners who are learning the basics of Python and data science. Complete Data Scientist with a Python career track to become a master in Python and data science. The career track consists of 25 courses and six projects to prepare you to become a professional data scientist.
A Deep Dive into the Phi-2 Model
Python List Size: 8 Different Methods for Finding the Length of a List in Python
An End-to-End ML Model Monitoring Workflow with NannyML in Python
Bex Tuychiev
15 min
Python in Visual Studio Code
Visual Studio Code is a free source code editor that fully supports Python and useful features such as real-time collaboration. It’s highly customizable to support your classroom the way you like to teach.
“Visual Studio Code is the best balance of authenticity and accessibility… Visual Studio Code doesn’t feel ‘fake’, it’s what real software developers use. Plus, Visual Studio Code works on every OS!” – Professor Zachary Dodds from Harvey Mudd College
Read below for recommendations for extensions, settings, and links to free lessons that you can use in your classes.
Run, debug, and test
Now that you are more familiar with Python in VS Code, let’s learn how to run, debug, and test your code.
Run
There are a few ways to run Python code in VS Code.
To run the Python script you have open on the editor, select the Run Python File in Terminal play button in the top-right of the editor.
There are also additional ways you can iteratively run snippets of your Python code within VS Code:
- Select one or more lines, then press Shift+Enter or right-click and select Run Selection/Line in Python Terminal. This command is convenient for testing just a part of a file.
- From the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)), select the Python: Start REPL command to open a REPL terminal for the currently selected Python interpreter. In the REPL, you can then enter and run lines of code one at a time.
Debug
The debugger is a helpful tool that allows you to inspect the flow of your code execution and more easily identify errors, as well as explore how your variables and data change as your program is run. You can start debugging by setting a breakpoint in your Python project by clicking in the gutter next to the line you wish to inspect.
To start debugging, initialize the debugger by pressing F5. Since this is your first time debugging this file, a configuration menu will open allowing you to select the type of application you want to debug. If it’s a Python script, you can select Python File.
Once your program reaches the breakpoint, it will stop and allow you to track data in the Python Debug console, and progress through your program using the debug toolbar.
For a deeper dive into Python debugging functionality, see Python debugging in VS Code.
Test
The Python extension provides robust testing support for Unittest and pytest.
You can configure Python tests through the Testing view on the Activity Bar by selecting Configure Python Tests and selecting your test framework of choice.
You can also create tests for your Python project, which the Python extension will attempt to discover once your framework of choice is configured. The Python extension also allows you to run and debug your tests in the Testing view and inspect the test run output in the Test Results panel.
For a comprehensive look at testing functionality, see Python testing in VS Code.
Test commands
Below are all the supported commands for testing with the Python extension in VS Code. These are all found via the Command Palette:
Command Name | Description |
Python: Configure Tests | Configure the test framework to be used with the Python extension. |
Test: Clear All Results | Clear all tests statuses, as the UI persists test results across sessions. |
Test: Debug Failed Tests | Debug tests that failed in the most recent test run. |
Test: Debug Last Run | Debug tests that were executed in the most recent test run. |
Test: Debug Test at Cursor | Debug the test method where you have your cursor focused on the editor. Similar to Python: Debug Test Method… on versions prior to 2021.9. |
Test: Debug Tests in Current File | Debug tests in the file that is currently in focus on the editor. |
Test: Go to Next Test Failure | If the error peek view is open, open and move to the peek view of the next test in the explorer that has failed. |
Test: Go to Previous Test Failure | If the error peek view is open, open and move to the peek view of the previous test in the explorer that has failed. |
Test: Peek Output | Opens the error peek view for a test method that has failed. |
Test: Refresh Tests | Perform test discovery and updates the Test Explorer to reflect any test changes, addition, or deletion. Similar to Python: Discover Tests on versions prior to 2021.9. |
Test: Rerun Failed Tests | Run tests that failed in the most recent test run. Similar to Python: Run Failed Tests on versions prior to 2021.9. |
Test: Rerun Last Run | Debug tests that were executed in the most recent test run. |
Test: Run All Tests | Run all discovered tests. Equivalent to Python: Run All Tests on versions prior to 2021.9. |
Test: Run Test at Cursor | Run the test method where you have your cursor focused on the editor. Similar to Python: Run Test Method… on versions prior to 2021.9. |
Test: Run Test in Current File | Run tests in the file that is currently in focus on the editor. Equivalent to Python: Run Current Test File on versions prior to 2021.9. |
Test: Show Output | Open the output with details of all the test runs. Similar to Python: Show Test Output on versions prior to 2021.9. |
Testing: Focus on Test Explorer View | Open the Test Explorer view. Similar to Testing: Focus on Python View on versions prior to 2021.9. |
Test: Stop Refreshing Tests | Cancel test discovery. |
Python Extension Pack
Unsure which extensions to recommend to your students? You can point your students to the Python Education Extension Pack that contains essential and helpful extensions for the classroom. You can download the extension pack from the VS Code Marketplace:
The extension pack contains:
- Python for basic Python functionality like compiling, debugging support, linting, Jupyter Notebooks, unit tests, and more.
- Live Share to enable real-time collaboration.
- Remote – SSH to work on remote projects (for example, to access lab machines) through SSH with full VS Code functionality.
- Markdown+Math for full LaTeX support in Markdown.
- Python Test Explorer for Visual Studio Code to visualize and run Python tests in the side bar.
- Code Runner to run snippets (selected code) and single files of any code with a single click.
More Python resources
- Getting Started with Python in VS Code – Learn how to edit, run, and debug code in VS Code.
- Virtual Environments and Packages (Python.org) – Learn more about virtual environments and packages.
- Installing Python Modules (Python.org) – Learn how to install Python modules.
- Python tutorial (Python.org) – Learn more about the Python language.
Python in Visual Studio Code
Working with Python in Visual Studio Code, using the Microsoft Python extension, is simple, fun, and productive. The extension makes VS Code an excellent Python editor, and works on any operating system with a variety of Python interpreters. It leverages all of VS Code’s power to provide auto complete and IntelliSense, linting, debugging, and unit testing, along with the ability to easily switch between Python environments, including virtual and conda environments.
This article provides only an overview of the different capabilities of the Python extension for VS Code. For a walkthrough of editing, running, and debugging code, use the button below.
Working with Python interpreters
Select and activate an environment
The Python extension tries to find and then select what it deems the best environment for the workspace. If you would prefer to select a specific environment, use the Python: Select Interpreter command from the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)).
Note: If the Python extension doesn’t find an interpreter, it issues a warning. On macOS 12.2 and older, the extension also issues a warning if you’re using the OS-installed Python interpreter as it is known to have compatibility issues. In either case, you can disable these warnings by setting
python.disableInstallationCheck
to
true
in your user settings.
The Python: Select Interpreter command displays a list of available global environments, conda environments, and virtual environments. (See the Where the extension looks for environments section for details, including the distinctions between these types of environments.) The following image, for example, shows several Anaconda and CPython installations along with a conda environment and a virtual environment (
env
) that’s located within the workspace folder:
Note: On Windows, it can take a little time for VS Code to detect available conda environments. During that process, you may see “(cached)” before the path to an environment. The label indicates that VS Code is presently working with cached information for that environment.
If you have a folder or a workspace open in VS Code and you select an interpreter from the list, the Python extension will store that information internally. This ensures that the same interpreter will be used when you reopen the workspace.
The selected environment is used by the Python extension for running Python code (using the Python: Run Python File in Terminal command), providing language services (auto-complete, syntax checking, linting, formatting, etc.) when you have a
.py
file open in the editor, and opening a terminal with the Terminal: Create New Terminal command. In the latter case, VS Code automatically activates the selected environment.
Tip: To prevent automatic activation of a selected environment, add
"python.terminal.activateEnvironment": false
to your
settings.json
file (it can be placed anywhere as a sibling to the existing settings).
Tip: If the activate command generates the message “Activate.ps1 is not digitally signed. You cannot run this script on the current system.”, then you need to temporarily change the PowerShell execution policy to allow scripts to run (see About Execution Policies in the PowerShell documentation):
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
Note: By default, VS Code uses the interpreter selected for your workspace when debugging code. You can override this behavior by specifying a different path in the
python
property of a debug configuration. See Choose a debugging environment.
The selected interpreter version will show on the right side of the Status Bar.
The Status Bar also reflects when no interpreter is selected.
In either case, clicking this area of the Status Bar is a convenient shortcut for the Python: Select Interpreter command.
Tip: If you have any problems with VS Code recognizing a virtual environment, please file an issue so we can help determine the cause.
Manually specify an interpreter
If VS Code doesn’t automatically locate an interpreter you want to use, you can browse for the interpreter on your file system or provide the path to it manually.
You can do so by running the Python: Select Interpreter command and select the Enter interpreter path… option that shows on the top of the interpreters list:
You can then either enter the full path of the Python interpreter directly in the text box (for example, “.venv/Scripts/python.exe”), or you can select the Find… button and browse your file system to find the python executable you wish to select.
If you want to manually specify a default interpreter that will be used when you first open your workspace, you can create or modify an entry for the
python.defaultInterpreterPath
setting.
Note: Changes to the
python.defaultInterpreterPath
setting are not picked up after an interpreter has already been selected for a workspace; any changes to the setting will be ignored once an initial interpreter is selected for the workspace.
Additionally, if you’d like to set up a default interpreter to all of your Python applications, you can add an entry for
python.defaultInterpreterPath
manually inside your User Settings. To do so, open the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)) and enter Preferences: Open User Settings. Then set
python.defaultInterpreterPath
, which is in the Python extension section of User Settings, with the appropriate interpreter.
How the extension chooses an environment automatically
If an interpreter hasn’t been specified, then the Python extension automatically selects the interpreter with the highest version in the following priority order:
- Virtual environments located directly under the workspace folder.
- Virtual environments related to the workspace but stored globally. For example, Pipenv or Poetry environments that are located outside of the workspace folder.
-
Globally installed interpreters. For example, the ones found in
/usr/local/bin
,
C:\\python38
, etc.
Note: The interpreter selected may differ from what
python
refers to in your terminal.
If Visual Studio Code doesn’t locate your interpreter automatically, you can manually specify an interpreter.
Where the extension looks for environments
The extension automatically looks for interpreters in the following locations, in no particular order:
-
Standard install paths such as
/usr/local/bin
,
/usr/sbin
,
/sbin
,
c:\\python36
, etc. - Virtual environments located directly under the workspace (project) folder.
-
Virtual environments located in the folder identified by the
python.venvPath
setting (see General Python settings), which can contain multiple virtual environments. The extension looks for virtual environments in the first-level subfolders of
venvPath
. -
Virtual environments located in a
~/.virtualenvs
folder for virtualenvwrapper. - Interpreters created by pyenv, Pipenv, and Poetry.
-
Virtual environments located in the path identified by
WORKON_HOME
(as used by virtualenvwrapper). -
Conda environments found by
conda env list
. Conda environments which do not have an interpreter will have one installed for them upon selection. -
Interpreters installed in a
.direnv
folder for direnv under the workspace folder.
Environments and Terminal windows
After using Python: Select Interpreter, that interpreter is applied when right-clicking a file and selecting Python: Run Python File in Terminal. The environment is also activated automatically when you use the Terminal: Create New Terminal command unless you change the
python.terminal.activateEnvironment
setting to
false
.
Please note that launching VS Code from a shell in which a specific Python environment is activated doesn’t automatically activate that environment in the default Integrated Terminal.
Note: conda environments cannot be automatically activated in the integrated terminal if PowerShell is set as the integrated shell. See Integrated terminal – Terminal profiles for how to change the shell.
Changing interpreters with the Python: Select Interpreter command doesn’t affect terminal panels that are already open. Thus, you can activate separate environments in a split terminal: select the first interpreter, create a terminal for it, select a different interpreter, then use the split button (⌘\ (Windows, Linux Ctrl+Shift+5)) in the terminal title bar.
Choose a debugging environment
By default, the debugger will use the Python interpreter chosen with the Python extension. However, if there is a
python
property specified in the debug configuration of
launch.json
, it takes precedence. If this property is not defined, it will fall back to using the Python interpreter path selected for the workspace.
For more details on debug configuration, see Debugging configurations.
Create a virtual environment
A best practice among Python developers is to use a project-specific
virtual environment
. Once you activate that environment, any packages you then install are isolated from other environments, including the global interpreter environment, reducing many complications that can arise from conflicting package versions. You can create non-global environments in VS Code using Venv or Anaconda with Python: Create Environment.
Open the Command Palette (⇧⌘P (Windows, Linux Ctrl+Shift+P)), start typing the Python: Create Environment command to search, and then select the command.
The command presents a list of environment types, Venv or Conda. For this example, select Venv.
The command then presents a list of interpreters that can be used for your project. Select the interpreter you installed at the beginning of the tutorial.
After selecting the interpreter, a notification will show the progress of the environment creation and the environment folder (
/.venv
) will appear in your workspace.
Ensure your new environment is selected by using the Python: Select Interpreter command from the Command Palette.
Note: For additional information about virtual environments, or if you run into an error in the environment creation process, see Environments.
Next steps
To learn how to build web apps with popular Python web frameworks, see the following tutorials:
There is then much more to explore with Python in Visual Studio Code:
- Python profile template – Create a new profile with a curated set of extensions, settings, and snippets
- Editing code – Learn about autocomplete, IntelliSense, formatting, and refactoring for Python.
- Linting – Enable, configure, and apply a variety of Python linters.
- Debugging – Learn to debug Python both locally and remotely.
- Testing – Configure test environments and discover, run, and debug tests.
- Settings reference – Explore the full range of Python-related settings in VS Code.
- Deploy Python to Azure App Service
- Deploy Python to Container Apps
Getting Started with Python in VS Code
In this tutorial, you will learn how to use Python 3 in Visual Studio Code to create, run, and debug a Python “Roll a dice” application, work with virtual environments, use packages, and more! By using the Python extension, you turn VS Code into a great, lightweight Python editor.
If you are new to programming, check out the Visual Studio Code for Education – Introduction to Python course. This course offers a comprehensive introduction to Python, featuring structured modules in a ready-to-code browser-based development environment.
To gain a deeper understanding of the Python language, you can explore any of the programming tutorials listed on python.org within the context of VS Code.
For a Data Science focused tutorial with Python, check out our Data Science section.
Create a Python source code file
From the File Explorer toolbar, select the New File button on the
hello
folder:
Name the file
hello.py
, and VS Code will automatically open it in the editor:
By using the
.py
file extension, you tell VS Code to interpret this file as a Python program, so that it evaluates the contents with the Python extension and the selected interpreter.
Note: The File Explorer toolbar also allows you to create folders within your workspace to better organize your code. You can use the New folder button to quickly create a folder.
Now that you have a code file in your Workspace, enter the following source code in
hello.py
:
msg = "Roll a dice" print(msg)
When you start typing
IntelliSense and auto-completions work for standard Python modules as well as other packages you’ve installed into the environment of the selected Python interpreter. It also provides completions for methods available on object types. For example, because the
msg
variable contains a string, IntelliSense provides string methods when you type
msg.
:
Finally, save the file (⌘S (Windows, Linux Ctrl+S)). At this point, you’re ready to run your first Python file in VS Code.
For full details on editing, formatting, and refactoring, see Editing code. The Python extension also has full support for Linting.
Jupyter notebooks
To enable Python support for Jupyter notebook files (
.ipynb
) in VS Code, you can install the Jupyter extension. The Python and Jupyter extensions work together to give you a great Notebook experience in VS Code, providing you the ability to directly view and modify code cells with IntelliSense support, as well as run and debug them.
You can also convert and open the notebook as a Python code file through the Jupyter: Export to Python Script command. The notebook’s cells are delimited in the Python file with
#%%
comments, and the Jupyter extension shows Run Cell or Run Below CodeLens. Selecting either CodeLens starts the Jupyter server and runs the cell(s) in the Python interactive window:
You can also connect to a remote Jupyter server to run your notebooks. For more information, see Jupyter support.
Debug tests
You might occasionally need to step through and analyze tests in the debugger, either because the tests themselves have a code defect you need to track down or in order to better understand why an area of code being tested is failing. For more information on debugging or to understand how it works in VS Code, you can read the Python debugging configurations and general VS Code Debugging articles.
For example, the
test_decrement
functions given earlier are failing because the assertion itself is faulty. The following steps demonstrate how to analyze the test:
-
Set a breakpoint on the first line in the
test_decrement
function. -
Right-click on the gutter decoration next to the function definition and select Debug Test, or select the Debug Test icon next to that test in the Test Explorer. VS Code starts the debugger and pauses at the breakpoint.
-
In the Debug Console panel, enter
inc_dec.decrement(3)
to see that the actual result is 2, whereas the expected result specified in the test is the incorrect value of 4. -
Stop the debugger and correct the faulty code:
# unittest self.assertEqual(inc_dec.decrement(3), 2) # pytest assert inc_dec.decrement(3) == 2
-
Save the file and run the tests again to confirm that they pass, and see that the gutter decorations also indicate passing status.
Note: Running or debugging a test does not automatically save the test file. Always be sure to save changes to a test before running it, otherwise you’ll likely be confused by the results because they still reflect the previous version of the file!
You can use the following commands from the Command Palette to debug tests:
- Test: Debug All Tests – Launches the debugger for all tests in your workspace.
- Test: Debug Tests in Current File – Launches the debugger for the tests you have defined in the file you have open in the editor.
- Test: Debug Test at Cursor – Launches the debugger only for the method where you have your cursor focused on the editor. You can also use the Debug Test icons in Test Explorer to launch the debugger for all tests in a selected scope and all discovered tests.
You can also change the default behavior of clicking on the gutter decoration to debug tests instead of run, by changing the
testing.defaultGutterClickAction
setting value to
debug
in your
settings.json
file.
The debugger works the same for tests as for other Python code, including breakpoints, variable inspection, and so on. To customize settings for debugging tests, you can specify
"purpose": ["debug-test"]
in the
launch.json
file in the
.vscode
folder from your workspace. This configuration will be used when you run Test: Debug All Tests, Test: Debug Tests in Current File and Test: Debug Test at Cursor commands.
For example, the configuration below in the
launch.json
file disables the
justMyCode
setting for debugging tests:
{ "name": "Python: Debug Tests", "type": "debugpy", "request": "launch", "program": "${file}", "purpose": ["debug-test"], "console": "integratedTerminal", "justMyCode": false }
If you have more than one configuration entry with
"purpose": ["debug-test"]
, the first definition will be used since we currently don’t support multiple definitions for this request type.
Example test walkthroughs
Python tests are Python classes that reside in separate files from the code being tested. Each test framework specifies the structure and naming of tests and test files. Once you write tests and enable a test framework, VS Code locates those tests and provides you with various commands to run and debug them.
For this section, create a folder and open it in VS Code. Then create a file named
inc_dec.py
with the following code to be tested:
def increment(x): return x + 1 def decrement(x): return x - 1
With this code, you can experience working with tests in VS Code as described in the sections that follow.
How to create and open a Python project or file
If you have an existing Python project you wish to work on in VS Code, you can begin by opening your folder or file from the VS Code Welcome page or File Explorer view, or by selecting File > Open Folder (Ctrl+K Ctrl+O) or File > Open File (⌘O (Windows, Linux Ctrl+O)).
You can create a new Python file by selecting New File on the VS Code Welcome page and then selecting Python file, or by navigating to File > New File ().
Tip: If you already have a workspace folder open in VS Code, you can add new files or folders directly into your existing project. You can create new folders and files by using the corresponding New Folder or New File icons on the top level folder in the File Explorer view.
Next steps
To learn how to build web apps with popular Python web frameworks, see the following tutorials:
There is much more to explore with Python in Visual Studio Code:
- Python profile template – Create a new profile with a curated set of extensions, settings, and snippets
- Editing code – Learn about autocomplete, IntelliSense, formatting, and refactoring for Python.
- Linting – Enable, configure, and apply a variety of Python linters.
- Debugging – Learn to debug Python both locally and remotely.
- Testing – Configure test environments and discover, run, and debug tests.
- Settings reference – Explore the full range of Python-related settings in VS Code.
Run and Debug Python in the Web
We are happy to announce experimental support for running Python code on the Web. To try it out, install the latest pre-release version of the Experimental – Python for the Web extension from the Marketplace. This work is based on WASM in Python, which is currently in development. To learn more about how it works and the ongoing progress, you can read Compiling Python to WebAssembly (WASM).
Install a Python interpreter
Along with the Python extension, you need to install a Python interpreter. Which interpreter you use is dependent on your specific needs, but some guidance is provided below.
Windows
Install Python from python.org. Use the Download Python button that appears first on the page to download the latest version.
Note: If you don’t have admin access, an additional option for installing Python on Windows is to use the Microsoft Store. The Microsoft Store provides installs of supported Python versions.
For additional information about using Python on Windows, see Using Python on Windows at Python.org
macOS
The system install of Python on macOS is not supported. Instead, a package management system like Homebrew is recommended. To install Python using Homebrew on macOS use
brew install python3
at the Terminal prompt.
Note: On macOS, make sure the location of your VS Code installation is included in your PATH environment variable. See these setup instructions for more information.
Linux
The built-in Python 3 installation on Linux works well, but to install other Python packages you must install
pip
with get-pip.py.
Other options
-
Data Science: If your primary purpose for using Python is Data Science, then you might consider a download from Anaconda. Anaconda provides not just a Python interpreter, but many useful libraries and tools for data science.
-
Windows Subsystem for Linux: If you are working on Windows and want a Linux environment for working with Python, the Windows Subsystem for Linux (WSL) is an option for you. If you choose this option, you’ll also want to install the WSL extension. For more information about using WSL with VS Code, see VS Code Remote Development or try the Working in WSL tutorial, which will walk you through setting up WSL, installing Python, and creating a Hello World application running in WSL.
Note: To verify that you’ve installed Python successfully on your machine, run one of the following commands (depending on your operating system):
Linux/macOS: open a Terminal Window and type the following command:
python3 --version
Windows: open a command prompt and run the following command:
py -3 --version
If the installation was successful, the output window should show the version of Python that you installed. Alternatively, you can use the
py -0
command in the VS Code integrated terminal to view the versions of python installed on your machine. The default interpreter is identified by an asterisk (*).
Create tests
Each test framework has its own conventions for naming test files and structuring the tests within, as described in the following sections. Each case includes two test methods, one of which is intentionally set to fail for the purposes of demonstration.
Tests in unittest
Create a file named
test_unittest.py
that contains a test class with two test methods:
import inc_dec # The code to test import unittest # The test framework class Test_TestIncrementDecrement(unittest.TestCase): def test_increment(self): self.assertEqual(inc_dec.increment(3), 4) # This test is designed to fail for demonstration purposes. def test_decrement(self): self.assertEqual(inc_dec.decrement(3), 4) if __name__ == '__main__': unittest.main()
Tests in pytest
Create a file named
test_pytest.py
that contains two test methods:
import inc_dec # The code to test def test_increment(): assert inc_dec.increment(3) == 4 # This test is designed to fail for demonstration purposes. def test_decrement(): assert inc_dec.decrement(3) == 4
Keywords searched by users: run python in visual studio code
Categories: Tìm thấy 11 Run Python In Visual Studio Code
See more here: kientrucannam.vn
See more: https://kientrucannam.vn/vn/