python.org (2049B)
1 * IDE setup 2 #+begin_src sh 3 pip install --user 'python-lsp-server[all]' 4 pip install --user pylsp-mypy 5 #+end_src 6 7 This seems to be enough for Eglot to turn Emacs into a Python IDE. 8 This recipe will probably break once PEP 668 hits my distros; I guess 9 I'll switch to pipx at that stage? 10 11 Tried to get the LSP server packaged by my distro, but openSUSE 12 Tumbleweed at least does not make it easy: 13 14 - Python packages are explicitly named =python3$y-…=, so asking zypper 15 install those means setting myself up for suffering when Tumbleweed 16 moves to version =$((++y))= and I need to chase down everything I've 17 manually installed to (a) install the newer versions (b) clean up 18 every remnant of the previous versions & the corresponding Python 19 runtime. 20 21 - Update 💡 :: The trick is to take the =$y= off. Requires a leap 22 of faith since neither ~zypper info~ nor zypper completions seem 23 to know about the unsuffixed names, but ~zypper install~ knows to 24 look for /capabilities/ instead of packages. Presumably 25 "installing capabilities" means they will be upgraded 26 automatically to =$((++yy))= when the time comes? 27 28 - I have no idea how to cajole zypper into installing those 29 "suggested" dependencies; =--recommended= does not cut it, 30 =--suggested= does not exist. 31 32 #+begin_src 33 $ sudo zypper install python310-python-lsp-server 34 Loading repository data... 35 Reading installed packages... 36 Resolving package dependencies... 37 38 The following 10 packages are suggested, but will not be installed: 39 python310-autopep8 python310-flake8 python310-mccabe python310-pycodestyle python310-pydocstyle 40 python310-pyflakes python310-pylint python310-rope python310-whatthepatch python310-yapf 41 42 The following 4 NEW packages are going to be installed: 43 python310-docstring-to-markdown python310-python-lsp-jsonrpc python310-python-lsp-server python310-ujson 44 45 4 new packages to install. 46 #+end_src 47 48 - Update 🫥 :: as of 2025-01-14, Tumbleweed's =python311= packages 49 no longer suggest nor recommend anything?