Python extension for Visual Studio Code
Pull request Compare This branch is even with DonJayamanne:master.
Permalink
Failed to load latest commit information.
.github Update release plan for release/master workflow Nov 8, 2018
.mocha-reporter Correct error message in VSTS mocha reporter (#2070) Jun 28, 2018
.vscode Refactor language server tests and add tests for language server (#3231) Nov 8, 2018
build Remove pre commit hook and disabled mandating copyright headers (#3243) Nov 8, 2018
images Simplify/touch-up README (#8) Nov 7, 2017
languages Introduce pip requirements file highlighting Sep 27, 2017
news Sort news entries by issue number (#3240) Nov 8, 2018
pythonFiles Fix a typo in a docstring Nov 8, 2018
resources More useful error messages for jupyter not being installed (#3234) Nov 7, 2018
schemas Add 'pip' to conda environment.yml schema (#2120) Aug 1, 2018
snippets Add snippet for `if __name__ == "__main__":` block (#2881) Oct 17, 2018
src Merge release branch fixes (#3291) Nov 10, 2018
syntaxes Delete unused test language files (#298) Nov 27, 2017
tpn Support an overrides file for npm dependencies for TPN generation (#3226 Nov 7, 2018
typings Check the Path environment variable when ext loads (#1982) Jun 18, 2018
.editorconfig #1228 multi root master (#2) Nov 1, 2017
.eslintrc fix #1276 Pre-commit hooks to ensure code complies with standards (#1277 Oct 12, 2017
.gitattributes Make npm happy in regards to line endings (#357) Dec 6, 2017
.gitignore Remove pre commit hook and disabled mandating copyright headers (#3243) Nov 8, 2018
.npmrc added .npmrc Oct 18, 2016
.travis.yml Run All Cells makes markdown show up first (#3250) Nov 8, 2018
.vscodeignore Update .vscodeignore based on 2018.10.0 Nov 8, 2018
CHANGELOG.md Merge release branch fixes (#3291) Nov 10, 2018
CODE_OF_CONDUCT.md Legal stuff to make CELA happy (#5) Nov 2, 2017
CODING_STANDARDS.md Mention which style guide takes precedence and import practices Apr 10, 2018
CONTRIBUTING.md Tweak wording for requiring an accepted issue for PRs Oct 29, 2018
LICENSE Legal stuff to make CELA happy (#5) Nov 2, 2017
PYTHON_INTERACTIVE_TROUBLESHOOTING.md Update PYTHON_INTERACTIVE_DIRECTIONS (#3237) Nov 8, 2018
README.md Update README for 2018.9.0 features Oct 18, 2018
ThirdPartyNotices-Distribution.txt Support an overrides file for npm dependencies for TPN generation (#3226 Nov 7, 2018
ThirdPartyNotices-Repository.txt Add nteract to repo TPN Oct 30, 2018
coverconfig.json Create localization of strings (#2757) Oct 9, 2018
functionalTestRequirements.txt Fix issue 3163 - Can't open interactive window more than once (#3170) Nov 5, 2018
gulpfile.js Remove pre commit hook and disabled mandating copyright headers (#3243) Nov 8, 2018
icon.png moved icon Jul 2, 2017
package-lock.json Run All Cells makes markdown show up first (#3250) Nov 8, 2018
package.datascience-ui.dependencies.json Do not merge - Improvements to webpack and tracking of datascience ui… Nov 7, 2018
package.json Bump the LS minimum version Nov 8, 2018
package.nls.de.json German Translation (#2203) Aug 2, 2018
package.nls.es.json Fix typos in the Spanish translation (#3042) Oct 29, 2018
package.nls.fr.json Update French translation. (#1973) Jun 15, 2018
package.nls.it.json Create localization of strings (#2757) Oct 9, 2018
package.nls.ja.json 🔥 remove jupyter commands (#1034) Mar 12, 2018
package.nls.json More useful error messages for jupyter not being installed (#3234) Nov 7, 2018
package.nls.ko-kr.json 🔥 remove jupyter commands (#1034) Mar 12, 2018
package.nls.pt-br.json Add PT-BR translation (#1900) Jun 11, 2018
package.nls.ru.json Add missing commands in russian translation (#3036) Nov 1, 2018
package.nls.zh-cn.json Fix whitespace in zh-cn translation Jun 7, 2018
package.nls.zh-tw.json Update Chinese (Taiwan) Translation. (#2600) Oct 16, 2018
packageExtension.cmd VS Python analysis engine integration (#1231) Mar 30, 2018
pvsc-dev-ext.py Update pvsc-dev-ext.py shebang line (#2774) Oct 4, 2018
requirements.txt Add bandit to supported linters (#2775) Oct 9, 2018
tsconfig.datascience-ui.json Do not merge - Improvements to webpack and tracking of datascience ui… Nov 7, 2018
tsconfig.json Add Python Interactive Window (#3034) Oct 30, 2018
tsfmt.json #1228 multi root master (#2) Nov 1, 2017
tslint.json Remove pre-commit hooks and move linters to CI (#2964) Oct 24, 2018
vscode-python-signing.csproj VS Python analysis engine integration (#1231) Mar 30, 2018
webpack.config.js Do not merge - Improvements to webpack and tracking of datascience ui… Nov 7, 2018
webpack.datascience-ui.config.js Fix problem where index_bundle ends up in wrong spot (#3289) Nov 10, 2018

README.md

Python extension for Visual Studio Code

A Visual Studio Code extension with rich support for the Python language (for all actively supported versions of the language: 2.7, >=3.4), including features such as linting, debugging, IntelliSense, code navigation, code formatting, refactoring, unit tests, snippets, and more!

Quick start

Optional steps

  • Step 4. Install a linter to get errors and warnings -- you can further customize linting rules to fit your needs.
  • Step 5. Select your preferred Python interpreter/version/environment using the Select Interpreter command.
    • By default we use the one that's on your path.
    • If you have a workspace open you can also click in the status bar to change the interpreter.
  • Step 6. Install ctags for Workspace Symbols, from here, or using brew install ctags on macOS.

For more information you can:

Useful commands

Open the Command Palette (Command+Shift+P on macOS and Ctrl+Shift+P on Windows/Linux) and type in one of the following commands:

Command Description
Python: Select Interpreter Switch between Python interpreters, versions, and environments.
Python: Start REPL Start an interactive Python REPL using the selected interpreter in the VS Code terminal.
Python: Run Python File in Terminal Runs the active Python file in the VS Code terminal. You can also run a Python file by right-clicking on the file and selecting Run Python File in Terminal.
Python: Select Linter Switch from PyLint to flake8 or other supported linters.

To see all available Python commands, open the Command Palette and type Python.

Supported locales

The extension is available in multiple languages thanks to external contributors (if you would like to contribute a translation, see the pull request which added Italian):

  • de
  • en
  • es
  • fr
  • it
  • ja
  • ko-kr
  • pt-br
  • ru
  • zh-cn
  • zh-tw

Questions, issues, feature requests, and contributions

  • If you have a question about how to accomplish something with the extension, please ask on Stack Overflow
  • If you come across a problem with the extension, please file an issue
  • Contributions are always welcome! Please see our contributing guide for more details
  • Any and all feedback is appreciated and welcome!
    • If someone has already filed an issue that encompasses your feedback, please leave a 👍/👎 reaction on the issue
    • Otherwise please file a new issue
  • If you're interested in the development of the extension, you can read about our development process

Feature details

  • IDE-like features
    • Automatic indenting
    • Code navigation ("Go to", "Find all" references)
    • Code definition (Peek and hover definition, View signatures)
    • Rename refactoring
    • Sorting import statements (use the Python: Sort Imports command)
  • Intellisense and autocomplete (including PEP 484 and PEP 526 support)
    • Ability to include custom module paths (e.g. include paths for libraries like Google App Engine, etc.; use the setting python.autoComplete.extraPaths = [])
  • Code formatting
    • Auto formatting of code upon saving changes (default to 'Off')
    • Use either yapf, autopep8, or Black for code formatting (defaults to autopep8)
  • Linting
  • Debugging
    • Watch window
    • Evaluate expressions
    • Step through code ("Step in", "Step out", "Continue")
    • Add/remove breakpoints
    • Local variables and arguments
    • Multi-threaded applications
    • Web applications (such as Flask & Django, with template debugging)
    • Expanding values (viewing children, properties, etc)
    • Conditional breakpoints
    • Remote debugging (over SSH)
    • Google App Engine
    • Debugging in the integrated or external terminal window
    • Debugging as sudo
  • Unit testing
    • Support for unittest, pytest, and nose
    • Ability to run all failed tests, individual tests
    • Debugging unit tests
  • Snippets
  • Miscellaneous
    • Running a file or selected text in python terminal
    • Automatic activation of environments in the terminal
  • Refactoring
    • Rename refactorings
    • Extract variable refactorings
    • Extract method refactorings
    • Sort imports

General Features

Debugging

Unit Tests

Data and telemetry

The Microsoft Python Extension for Visual Studio Code collects usage data and sends it to Microsoft to help improve our products and services. Read our privacy statement to learn more. This extension respects the telemetry.enableTelemetry setting which you can learn more about at https://code.visualstudio.com/docs/supporting/faq#_how-to-disable-telemetry-reporting.