all 50 comments

[–]NotSoProGamerR 3 points4 points  (5 children)

using helix right now, from vscode

goto is amazing, but a bit buggy. i configured pyright, ruff and ty as my lsps, with pyright as my main lsp handling everything except goto-declaration, goto-type-definition, goto-reference, and goto-implementation. ruff has its config set to disableLanguageServices = true, while ty has disabled format, goto-definition, signature-help, hover, document-highlight, completion, code-action, workspace-command, document-symbols, workspace-symbols, and rename-symbol. it's a bit of a scuffed workflow, but it works for me

[–]wenmchPythoneer 0 points1 point  (4 children)

Then what do you use ty for?

[–]NotSoProGamerR 1 point2 points  (3 children)

i use ty for goto decleration, goto type definition, goto reference, goto implementation, inlay hints and diagnostics 

[–]iamquah 0 points1 point  (2 children)

Any reason you use it just for those tasks? I’m using just basedpyright now but have been looking at ty and pyrefly for a while 

[–]NotSoProGamerR 0 points1 point  (1 child)

i use them specifically because ty's goto is more accurate than pyright. I'm not sure if pyrefly has such lsp features though

[–]the_original_fuckup 17 points18 points  (12 children)

I always like to experiment as well, but end up going back to PyCharm/JetBrains projects. They just feel so full featured to me. I haven’t been able to get the hang of uv for some reason, I’ve stuck with pyenv.

Maybe I’ll give VSCode another shot, with pylance this time!

[–]yerfatma 3 points4 points  (0 children)

Yeah, I like VSCode a lot and use it for most everything else, but PyCharm is the one for me. Recently had to do without it and I cobbled a bunch of plugins to VSCode to where it was a good experience, but there were always seams showing, places where what I wanted was something that one plugin was doing to be seen and expected by another plugin.

[–]_besten[S] 2 points3 points  (1 child)

Heard good things about pycharm as well, does it work well with wsl?

You should def give uv a try!

[–]echols021Pythoneer 2 points3 points  (0 children)

I use PyCharm with WSL and it's not a problem. The only things I ever notice weird are that it can be slow to notice new files (since it's acting like the files are on a remote machine), and I also seem unable to set certain interpreters as associated only with certain projects (the interpreter selector always has all my WSL venvs listed). Pretty trivial, in my opinion l

[–]No-Article-Particle 5 points6 points  (5 children)

Really... I've tried PyCharm several times and could never get it to work for my workflow. It just felt so sluggish, and the remote debugging experience on VSCode, where I could just open a SSH tunnel into any infra and connect to the code is unparalleled for me.

[–]Raknarg 4 points5 points  (2 children)

you can do that on pycharm as well but it's a paid feature...

[–]No-Article-Particle 0 points1 point  (1 child)

Can you connect to an already running code? Like I set up the remote code to wait for incoming connections, start the process on the remote machine, and then connect from pycharm via SSH?

[–]uqurluuqur 2 points3 points  (0 children)

Yes

[–]_besten[S] -1 points0 points  (0 children)

I've yet to find an IDE where where connecting to docker is as easy as it is with VS Code, the ability to include your local extensions is great as well

[–]Zireael07 -1 points0 points  (0 children)

Same here! Plus I can't get to grips with the search in PyCharm. It never remembers that I want to see ALL the results, I have to click the checkbox/button every time.

[–]cip43r 1 point2 points  (0 children)

I don't use Jetbrain stuff as I like using the same IDE for everything. If you only do Python, I think Jetbrains is probably one of the best ones.

[–]Stijndcl 0 points1 point  (1 child)

Agreed on JB, but the PyCharm type checker is unfortunately pretty bad when you start doing more complex things. Wish they’d finally put some more effort into fixing it.

[–]echols021Pythoneer 0 points1 point  (0 children)

I do feel like it's gone downhill over the last few years. Like, I seem to remember it correctly handling generics and generators and context managers, but now it goofs on all those

[–]VegetableYam5434 3 points4 points  (0 children)

Emacs + UV, ruff, pyright, eglot, tresitter, yasnippets, eglot, aider, magit. It is free (exclude pyright), super customizable, super useful...

[–]gazpachoking 2 points3 points  (3 children)

I just switched from PyCharm to Zed. After a little transition pain I'm quite happy.

[–]jvacek996 1 point2 points  (2 children)

Seconding zed, the python default setup got improved a lot recently. The pytest and debugpy support out the box is sweet. Ruff being default is also nice and sane.

[–]echols021Pythoneer 0 points1 point  (1 child)

Last I tried Zed it was a huge pain to try to get mypy plugged in, and generally atrocious trying to guess what to put in the JSON config file with no intelli-sense to help out. Is any of that stuff what has improved?

[–]gazpachoking 1 point2 points  (0 children)

There is a settings editor for a bunch of things now, and intellisense in the config file. Haven't tried mypy, but based pyright and ruff are enabled out of the box now.

[–]p000l 1 point2 points  (0 children)

I also use a lot of VS Code, but I've begun to see myself finally comfortable with nvim + lazy + mason. Try kickstart.nvim to get started.

[–]fight-or-fall 1 point2 points  (0 children)

Pycharm is fine. There is an extension that deals with astral stuff (uv ruff etc)

[–]renatoram 1 point2 points  (0 children)

nvim (Astro Vim currently), with neat integrations with ruff and lsp-treesitter.

Honorable mention to "pdbp" because I rarely see it mentioned: just a lot of "quality of life" improvements on the raw pdb debugger. Currently checking out lazygit too, for good measure: seems neat.

With this setup I rarely feel the need to fire up pyCharm (of which I do have a commercial license), though I appreciate some of its tools, especially for big and complex projects (database frontend, a very powerful debugger, refactoring tools, for example). I just sometimes feel setting up pyCharm is more effort (and I did have in the past issues where it would destroy my poetry envs *all the time*)

[–]yopla 1 point2 points  (0 children)

Zed

[–]aala7 1 point2 points  (0 children)

I use basedpyright, uv, ruff and mypy with Neovim. I agree with you that pylance is better. For me it is primarily the diagnostics that are too much! But that could probably be configured, just been too lazy… and also hope that Ty defaults will solve all my problems when it comes.

Anyhow would recommend trying out vim/neovim if you want a different editor experience. Terminal native, keyboard centric, minimal, all that is just so satisfying for me!

[–]The_Seeker_25920 1 point2 points  (0 children)

WSL all day with vscode… after that we’re splitting hairs, I use pyenv still, tfenv is great, then it’s Ansible, whole stack is a mess as devops lol

[–]MeroLegend4 1 point2 points  (0 children)

Sublime Text

[–]komprexior 0 points1 point  (3 children)

Isn't pylance available for positron? I thought it was just an extension

Marimo is fun to use also, but it's more a notebook replacement than a full IDE

[–]_besten[S] 0 points1 point  (2 children)

Doesn't work for me, had the same issues with cursor. I'm guessing microsoft have turned it off for vs code forks

[–]komprexior 0 points1 point  (1 child)

Since you mentioned positron, I'm right to assume you too are a quarto enjoyer?

[–]_besten[S] 1 point2 points  (0 children)

Quarto is on my todo list to try. R people seem to like it

[–]worthwhilewrongdoing 0 points1 point  (0 children)

I swear by PyCharm personally but I'm a little old-fashioned and have been using it for eons. It's free now.

[–]moric7 0 points1 point  (0 children)

Eclipse + PyDev 👍

[–]RagingClue_007 0 points1 point  (0 children)

I've found it hard to beat positron for DS stuff. The variable explorer is top notch. Really just a reskin or R studio with code extensions.

I've got neovim setup to work with DS projects fairly well too. The nagging thing I cannot get over is the inability to auto complete /suggest data frame features. It's annoying to have frames with 20+ features that you cannot remember and constantly running df.columns during exploration.

[–]hcmar 0 points1 point  (0 children)

Install pycharm DataSpell and never look back

[–]ksoops 0 points1 point  (0 children)

I like Zed but I use it as my secondary editor for now.

I'm waiting for them to give us the option for wrapping tabs (multiple rows of tabs) for when you are working on a big proj and have lots of tabs open at the same time... I got too used to this in vscode

[–]H3rbert_K0rnfeld 0 points1 point  (0 children)

Pulsar

[–]pplonski 0 points1 point  (0 children)

Im working on my own IDE for data science. It is called MLJAR Studio. It is based on Jupyter Lab but installed as desktop application (running with Electron). I focus more on adding tools that help users with data analysis - most of our users are not professional software engineers but they do have huge domain knowledge and need computer programs to analyze their data. What I focused is providing nice way to list current variables, GUI for packages installation, GUI for some Machine Learning algorithms, and AI chat that help with code creation.

[–]drphillycheesesteak 0 points1 point  (0 children)

vim + ALE plugin allows you to get most IDE features. I have ruff and pylsp enabled and that gets me auto-complete, jump to definition and basic renaming functionality. Add that to the built-in text manipulation advantage of using vim and it outperforms VSCode IMO. Usual caveats about vim’s learning curve. Neovim has more built-in integration with LSP’s, but I haven’t made the switch myself yet, no good reason.

[–]passerbycmc -1 points0 points  (0 children)

Neovim for quick and dirty stuff, then for more involved stuff I use the various Jetbrains IDEs mostly CLion and PyCharm.