LSP-pylsp
Convenience package for the Python Language Server
Details
Installs
- Total 18K
- Win 8K
- Mac 4K
- Linux 6K
Nov 21 | Nov 20 | Nov 19 | Nov 18 | Nov 17 | Nov 16 | Nov 15 | Nov 14 | Nov 13 | Nov 12 | Nov 11 | Nov 10 | Nov 9 | Nov 8 | Nov 7 | Nov 6 | Nov 5 | Nov 4 | Nov 3 | Nov 2 | Nov 1 | Oct 31 | Oct 30 | Oct 29 | Oct 28 | Oct 27 | Oct 26 | Oct 25 | Oct 24 | Oct 23 | Oct 22 | Oct 21 | Oct 20 | Oct 19 | Oct 18 | Oct 17 | Oct 16 | Oct 15 | Oct 14 | Oct 13 | Oct 12 | Oct 11 | Oct 10 | Oct 9 | Oct 8 | Oct 7 | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Windows | 2 | 2 | 3 | 4 | 9 | 10 | 4 | 0 | 0 | 5 | 5 | 3 | 1 | 2 | 4 | 7 | 4 | 6 | 8 | 3 | 5 | 4 | 9 | 2 | 3 | 3 | 3 | 7 | 6 | 5 | 8 | 6 | 9 | 4 | 11 | 6 | 5 | 8 | 6 | 9 | 8 | 3 | 12 | 7 | 7 | 5 |
Mac | 2 | 1 | 1 | 2 | 2 | 3 | 1 | 0 | 0 | 0 | 1 | 0 | 0 | 1 | 1 | 5 | 5 | 1 | 6 | 2 | 1 | 4 | 2 | 4 | 4 | 4 | 5 | 0 | 1 | 1 | 3 | 4 | 3 | 2 | 0 | 1 | 2 | 1 | 1 | 3 | 6 | 5 | 6 | 5 | 7 | 2 |
Linux | 2 | 2 | 3 | 8 | 5 | 1 | 6 | 0 | 0 | 3 | 8 | 5 | 4 | 6 | 3 | 6 | 4 | 7 | 1 | 0 | 4 | 6 | 6 | 12 | 9 | 9 | 3 | 4 | 6 | 5 | 3 | 3 | 3 | 9 | 3 | 6 | 7 | 10 | 8 | 9 | 4 | 5 | 8 | 6 | 2 | 8 |
Readme
- Source
- raw.githubusercontent.com
LSP-pylsp
This is a helper package that automatically installs and updates the Python LSP Server (pylsp) for you.
To use this package, you must have:
- An executable
python
(on Windows) orpython3
(on Linux/macOS) - The LSP package
- For Ubuntu and Debian users, you must also install
python3-venv
withapt
- It's recommended to also install the
LSP-json
package which will provide auto-completion and validation for this package's settings.
Applicable Selectors
This language server operates on views with the source.python
base scope.
Installation Location
The server is installed in the $CACHE/Package Storage/LSP-pylsp
directory, where $CACHE
is the base data path of Sublime Text.
For instance, $CACHE
is ~/.cache/sublime-text
on a Linux system. If you want to force a re-installation of the server,
you can delete the entire $CACHE/Package Storage/LSP-pylsp
directory or just reinstall the package. The installation is done through a virtual environment, using
pip. Therefore, you must have at least the python
executable installed and it must be present in your $PATH
.
Like any helper package, installation starts when you open a view that is suitable for this language server. In this
case, that means that when you open a view with the source.python
base scope, installation commences.
Running alongside LSP-pyright
LSP-pyright
is a more modern, faster and actively supported alternative to LSP-pylsp
. While it's arguably much better solution for validating the code and type-checking, it doesn't support linters or code formatters like flake8
, pyflakes
, pydocstyle
, yapf
or black
. The solution to that could be to run them alongside each other with code-checking features disabled in LSP-pylsp
. To achieve that, open Preferences: LSP-pylsp Settings
from the Command Palette and add the following user settings:
{
"disabled_capabilities": {
"completionProvider": true,
"definitionProvider": true,
"documentHighlightProvider": true,
"documentSymbolProvider": true,
"hoverProvider": true,
"referencesProvider": true,
"renameProvider": true,
"signatureHelpProvider": true,
},
"settings": {
"pylsp.plugins.jedi_completion.enabled": false,
"pylsp.plugins.jedi_definition.enabled": false,
"pylsp.plugins.jedi_hover.enabled": false,
"pylsp.plugins.jedi_references.enabled": false,
"pylsp.plugins.jedi_signature_help.enabled": false,
"pylsp.plugins.jedi_symbols.enabled": false,
},
}
Configuration
Configure the Python LSP Server by accessing Preferences > Package Settings > LSP > Servers > LSP-pylsp
.
Python Binary
The underlying pylsp
server will be installed inside a virtual environment created using a system-default Python interpreter (by default python
on Windows and python3
on other platforms). If you want to, for example, develop code that requires a newer version of Python than the one installed by default, you can override the path to the Python interpreter (binary) by changing the python_binary
setting. For example:
// Settings in here override those in "LSP-pylsp/LSP-pylsp.sublime-settings"
{
"python_binary": "/opt/homebrew/bin/python3",
}
Virtual environments
If your project needs to run and be validated within a virtual environment, point to the environment using the pylsp.plugins.jedi.environment
setting. For example, if your virtual environment lives in .venv/myproject
within the project directory then run Project: Edit Project
from the Command Palette and add the setting like so:
{
// "folders": [
// ...
// ]
"settings":
{
"LSP":
{
"LSP-pylsp":
{
"settings":
{
"pylsp.plugins.jedi.environment": "./.venv/myproject"
}
}
}
}
}
You can also set it in the LSP-pylsp
global settings but it's more likely that you'd want this to be overridden per-project.
Code Completion
This language server provides code completion through JEDI.
Signature Help
This language server provides signature help through JEDI.
Goto
This language server provides “goto definition” through JEDI.
Find References
This language server provides “find references” through JEDI.
Rename
This language server provides “rename word/symbol” through JEDI.
Linters
The default linter is pycodestyle
. The possible linters are:
- pycodestyle (
"pylsp.plugins.pycodestyle.enabled"
in the settings) - pydocstyle (
"pylsp.plugins.pydocstyle.enabled"
in the settings) - flake8 (
"pylsp.plugins.flake8.enabled"
in the settings) For flake8 to work, you must also modify"pylsp.configurationSources"
to be["flake8"]
instead of the default["pycodestyle"]
. - pyflakes (
"pylsp.plugins.pyflakes.enabled"
in the settings) - pylint (
"pylsp.plugins.pylint.enabled"
in the settings) - pylsp_mypy (
"pylsp.plugins.pylsp_mypy.enabled"
in the settings) - ruff (
"pylsp.plugins.ruff.enabled"
in the settings)
After changing a linter, you must restart Sublime Text.
Formatters
The default formatter is autopep8
. The possible formatters are:
Name | Setting | Note |
---|---|---|
autopep8 | pylsp.plugins.autopep8.enabled |
|
black | pylsp.plugins.pylsp_black.enabled |
When enabling also make sure that autopep8 and yapf are disabled. |
ruff | pylsp.plugins.ruff.formatEnabled |
Make sure to also enable pylsp.plugins.ruff.enabled and disable other formatters and linters. |
yapf | pylsp.plugins.yapf.enabled |
Sorting import statements
To sort your import statements, you can enable isort
. The relevant setting is "pylsp.plugins.pyls_isort.enabled"
in
the settings. Sorting is done through the “LSP: Format Document” option in the Context Menu by right-clicking within the
view with your mouse.
Sublime Text Plugin Development
By default, the environment of pylsp is adjusted so that the PYTHONPATH
includes the directory where sublime.py
and
sublime_plugin.py
live, as well as the $DATA/Packages directory. This enables accurate code completion for these
files.