An extension with rich support for the Python language, with features including the following and more:
- Linting (Prospector, Pylint, pycodestyle/Pep8, Flake8, pydocstyle with config files and plugins)
- Intellisense (autocompletion)
- Scientific tools (Jupyter/IPython)
- Auto indenting
- Code formatting (autopep8, yapf, with config files)
- Code refactoring (Rename, Extract Variable, Extract Method, Sort Imports)
- Viewing references, code navigation, view signature
- Excellent debugging support (remote debugging, mutliple threads, django, flask)
- Unit testing, including debuggin (unittest, pytest, nosetests, with config files)
- Execute file or code in a python terminal
- Local help file (offline documentation)
- Snippets
- Install the extension
- If Python is in the current path
- You're ready to use it.
- If using a custom Python Version or a Virtual Environment, use the command
Select Workspace Interpreter
)
For further information and details continue through to the documentation.
- Contributions are always welcome. Fork it, modify it and create a pull request.
- Details on contributing can be found here
- Any and all feedback is appreciated and welcome.
- Please feel free to add suggestions here
- IDE Features
- Auto indenting
- Code navigation (Go to, Find all references)
- Code definition (Peek and hover definition, View Signature)
- Rename refactoring
- Sorting Import statements (use "Python: Sort Imports" command)
- Ability to include custom module paths (e.g. include paths for libraries like Google App Engine, etc.)
- Use the
setting python.autoComplete.extraPaths = []
- For instance getting autocomplete/intellisense for Google App Engine, add the following to your settings file:
"python.autoComplete.extraPaths": [
"C:/Program Files (x86)/Google/google_appengine",
"C:/Program Files (x86)/Google/google_appengine/lib" ]
- Executing blocks of code (cells) in a Jupyter Kernel
- Managing kernels (restarting, stopping, interrupting and selecting different kernels)
- Viewing interactive graphs, HTML, SVG, laText output from Jupyter from within Visual Studio Code
- Auto formatting of code upon saving changes (default to 'Off')
- Use either yapf or autopep8 for code formatting (defaults to autopep8)
- It can be turned off (default is to be turned on and use pylint)
- Multiple linters supported (along with support for configuration files for each linter)
- Supported linters include pylit, pep8, flake8, pydocstyle, prospector
- Paths to each of the linters can be optionally configured
- Custom plugins such as pylint plugin for Django can be easily used by modifying the settings as follows:
"python.linting.pylintArgs": ["--load-plugins", "pylint_django"]
- Watch window
- Evaluate Expressions
- Step through code (Step in, Step out, Continue)
- Add/remove break points
- Local variables and arguments
- Multiple Threads and Web Applications (such as Flask, Django)
- Expanding values (viewing children, properties, etc)
- Conditional break points
- Remote debugging
- Google App Engine
- Debugging in the integrated or external terminal window
- Debugging as sudo
- Unit Testing
- Support for unittests, nosetests and pytest
- Test results are displayed in the "Python" output window
- Run failed tests, individual tests
- Snippets
- Miscellaneous
- Running a file or selected text in python terminal
- Refactoring
- Debugging of Django templates
- Linting with mypy
- Improved error handling when loading Jupyter/IPython
- Fixes to unittests
- Added support for Jupyter/IPython
- Added local help (offline documentation)
- Added ability to pass in extra arguments to interpreter when executing scripts (#316)
- Added ability set current working directory as the script file directory, when to executing a Python script
- Rendering intellisense icons correctly (#322)
- Changes to capitalization of context menu text (#320)
- Bug fix to running pydocstyle linter on windows (#317)
- Fixed performance issues with regards to code navigation, displaying code Symbols and the like (#324)
- Fixed code renaming issue when renaming imports (#325)
- Fixed issue with the execution of the command
python.execInTerminal
via a shortcut (#340) - Fixed issue with code refactoring (#363)