4 ms·
Eh, I'd recommend Pycharm or even Spyder over any of the 3 you mentioned for Python script development. Pycharm can have a bit of a steep learning curve since i
by _coveredInBees 8y ago
Eh, I'd recommend Pycharm or even Spyder over any of the 3 you mentioned for Python script development. Pycharm can have a bit of a steep learning curve since it is a very powerful IDE and things can get a bit overwhelming initially, but it has the best debugging experience you can find in Python land. The interactive debugging in (I believe) an iPython shell is fantastic, as are the variable explorers, etc.
Spyder is very rough around the edges but is fantastic if you are looking for a MATLAB like IDE experience to develop scripts in. The integration with iPython is fantastic and prototyping scripts is a breeze. Debugging though is a lot more rudimentary in comparison to Pycharm.
VSCode is making progress on the Python side of things but there are still numerous drawbacks to the current Python dev experience:
1. Python linting does not update in real-time but only on saves which isn't particularly great. You can hack around it by setting a low auto-save interval, but that is not for everyone.
2. The Python shell for interactive coding is not an iPython shell but a basic Python one, which means you don't get all the awesome things that iPython gives you like tab completion, introspection, magics, etc.
3. The debugging experience in VSCode is pretty great but the interactive console in VSCode during debugging only allows single lines of code of entry which is severely limiting.
4. It's a lot easier to setup and configure local venvs for testing in PyCharm along with different run configurations to pass command line args to your scripts, etc. VSCode can do this, but you have to edit a JSON config file and it isn't nearly as easy or polished.
I want to use VSCode for Python development since I use it all the time for most everything else including all Javascript work that I do, but I keep going back to Pycharm because it just ends up being a lot easier to use and makes me a lot more productive when coding in Python.