An extension with rich support for the Python language (including Python 3.6), with features including the following and more:
- Linting (Prospector, Pylint, pycodestyle/Pep8, Flake8, pylama, pydocstyle with config files and plugins)
- Intellisense (autocompletion with support for PEP-0484)
- 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 over SSH, mutliple threads, django, flask)
- Running and debugging Unit tests (unittest, pytest, nosetests, with config files)
- Execute file or code in a python terminal
- Local help file (offline documentation)
- Snippets
- Install the extension
- optionally install
ctags
for Workspace Symbols, from here, or usingbrew install ctags
on OSX. - If Python is in the current path
- You're ready to use it.
- To select a different Python Interpreter/Version (or use 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)
- Intellisense and Autocomplete with support for PEP-0484
- 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" ]
- This functionality has been moved into a separate extension Jupyter
- 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 pylint, 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, with template debugging)
- Expanding values (viewing children, properties, etc)
- Conditional break points
- Remote debugging (over SSH)
- 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
- Debugging unittests
- Snippets
- Miscellaneous
- Running a file or selected text in python terminal
- Refactoring
- Moved Jupyter functionality into a separate extension Jupyter
- Updated readme #779
- Changing default arguments of
mypy
#658 - Added ability to disable formatting #559
- Fixing ability to run a Python file in a terminal #784
- Added support for Proxy settings when installing Python packages using Pip #778
- Fixed navigating to definitions #711
- Support auto detecting binaries from Python Path #716
- Setting PYTHONPATH environment variable #686
- Improving Linter performance, killing redundant processes 4a8319e
- Changed default path of the CATAS file to
.vscode/tags
#722 - Add parsing severity level for flake8 and pep8 linters #709
- Fix to restore function descriptions (intellisense) #727
- Added default configuration for debugging Pyramid #287
- Feature request: Run current line in Terminal #738
- Miscellaneous improvements to hover provider 6a7a3f3, 6268306
- Fixes to rename refactor (due to 'LF' EOL in Windows) #748
- Fixes to ctag file being generated in home folder when no workspace is opened #753
- Fixes to ctag file being generated in home folder when no workspace is opened #753
- Disabling auto-completion in single line comments #74
- Fixes to debugging of modules #518
- Displaying unit test status icons against unit test code lenses #678
- Fix issue where causing 'python.python-debug.startSession' not found message to be displayed when debugging single file #708
- Ability to include packages directory when generating tags file #735
- Fix issue where running selected text in terminal does not work #758
- Fix issue where disabling linter doesn't disable it (when no workspace is open) #763
- Search additional directories for Python Interpreters (~/.virtualenvs, ~/Envs, ~/.pyenv) #569
- Added ability to pre-load some modules to improve autocompletion #581
- Removed invalid default value in launch.json file #586
- Added ability to configure the pylint executable path #766
- Fixed single file debugger to ensure the Python interpreter configured in python.PythonPath is being used #769