ITADN

Use WPS with PyCharm but without console, rather than built in, LSP like

#3586OpenDay0Dreamer 创建于 2026-01-18
D
Day0Dreamercommented
_Hey there, I managed to configure WSP using LSP4IJ in PyCharm and good old pipx. I assume you have pipx._ <img width="783" height="520" alt="Image" src="https://github.com/user-attachments/assets/0f44e0d7-d0d9-4d5a-b978-2e0b9fc447ad" /> ## Here's how ### 1 Install python-lsp-server ```bash # Install pylsp pipx install "python-lsp-server[flake8]" # Inject required plugins pipx inject python-lsp-server wemake-python-styleguide pipx inject python-lsp-server Flake8-pyproject pipx inject python-lsp-server pyls-flake8 ``` > **Important:** The `[flake8]` extra does NOT install the flake8 plugin — you must manually inject `pyls-flake8`. ### 2 Verify Installation. ```bash pipx runpip python-lsp-server list # or pipx runpip python-lsp-server list | grep -E "(flake8|wemake|pyls-flake8|Flake8-pyproject)" ``` Expected output: ``` flake8 7.x.x Flake8-pyproject 1.x.x pyls-flake8 0.x.x wemake-python-styleguide 1.x.x ``` ### 3 Find pylsp Executable Path ```bash where pylsp ``` Note the path: `C:\Users\Day\.local\bin\pylsp.exe` ### 4 Create LSP server 1. **Settings → Languages & Frameworks → Language Server Protocol → Server Definitions** 2. Click **"+"** to add a new server 3. Configure: | Field | Value | |-------|-------| | **Name** | `pylsp-flake8` | | **Extension** | `py` | | **Server mode** | `Executable` | | **Path** | `C:\Users\Day\.local\bin\pylsp.exe` | | **Args** | *(leave empty)* | 4. In the **Configuration** tab, add this JSON: ```json { "pylsp": { "plugins": { "flake8": { "enabled": true }, "pycodestyle": { "enabled": false }, "pyflakes": { "enabled": false } } } } ``` 5. In Mappings - Language - Languages add the Python language. 6. Click **OK** ### 5 Restart PyCharm Restart PyCharm completely for the LSP server to initialize. ### 6 Test Inline Errors Create a test file with intentional WPS errors: ```python # test_wps_errors.py """Test file with WPS errors.""" # WPS407: Mutable module constant ITEMS_LIST = [] # WPS110: Wrong variable name data = {"key": "value"} obj = object() def process(x): # WPS421: Wrong function call (print) print("Processing...") # WPS432: Magic number return x * 3.14159 ``` - [ ] **WPS errors appear as inline squiggles** (yellow/orange underlines) - [ ] Hovering shows the WPS error message
1 条评论