Which python IDE should I use?

Hello there !
I’ve been using python for a while, but I never used and IDE, I would always just type my script in some text editor and run it with a terminal.
I kinda liked it since I felt I had a lot of control on what was installed in my machine and what wasn’t, but I had some issues recently where I needed to load large files into python and debugging was becoming tremendously harder since I had to wait for a couple minutes each time I had to test my code.
I then decided to get an IDE, most people around me use spyder, which would solve that kind of issues, I also find the variable explorer quite nice.
I really don’t like Anaconda however, it’s unnecessarily huge and I don’t like its fancy UI, but I have no idea how to install new packages on spyder otherwise, so I’m not sure I’ll be keeping it.
Any suggestions ?

1 Like

I use Spyder without Anaconda (I also find Anaconda bulky and it takes control of your system). You can just download Spyder from the Spyder website. Installing packages is simply a matter of doing pip install in the Ipython window which Spyder provides. That is what I would recommend and what I do.


Also, the Anaconda UI is totally optional–you can use something like micromamba or miniconda to get a command-line tool to create environments, without the UI or the base installation of a ton of packages.

I use these tools because I often want to install non-PyPI tools in the same environment. But pip alone is a great choice for Python packages.

There are lots of great IDEs out there, and what’s best for you will depend on how you like to work and what kind of code you’re writing. In recent years I’ve been using PyCharm and VSCode. Both are free–PyCharm has a paid version with more features.

1 Like

Thanks <3

I’m not a fan of the full-fat Anaconda distribution nor the Anaconda Navigator either for the same reasons, but there are plenty of other good options without needing to ditch Spyder.

  • As others mentioned, there’s Spyder’s standalone installers which can be downloaded from the Spyder website; this includes Spyder and a built-in Python environment with just the most common packages pre-installed (which Spyder uses itself), and you can connect it to any other Python installation/environment on your system—see this FAQ answer for a step by step guide on that, including a short tutorial video.

  • Additionally, there are a number of other Conda distributions besides just Anaconda; I typically recommend Miniforge/Mambaforge, which are lightweight and just come with Conda to start, and are pre-configured to use the Conda-Forge channel which has a much wider selection of up to date packages than the Anaconda default. You can use standalone Spyder with these (recommended, and in fact the above FAQ walks you through that step by step), or you could install Spyder itself with them instead (ideally in its own environment),

  • Since Spyder itself is just a Python package, you can also install it with pip, or with several other methods, and use it with that Python environment or any other. However, we wouldn’t recommend that for most users over the standalone installers, as if you install, update or remove other packages in that environment, you could accidentally break Spyder itself, whereas the standalone installers are carefully built and tested to ensure they work reliably and won’t be broken by you installing your own packages, and also include an optional updater and other features.

  • If you want to keep your existing Anaconda install but don’t want to use Anaconda Navigator, you can use conda on the command line just like pip to create environments, install/update/remove packages, etc, same as in any Conda-based distribution. On macOS and Linux it should work in your normal Terminal; on Windows you’ll need to use the Anaconda Prompt from your start menu.

  • Spyder 6, currently in beta, includes a built-in Conda-based package and environment manager which allows you to create environments and install, update and remove Conda packages right within Spyder with no Anaconda needed. It’s not as “fancy” as Anaconda Navigator (which I’m no fan of either); we’ve designed it to be much simpler to use and require minimal user intervention, and means you won’t need to install anything else besides Spyder if you don’t want to.

That’s also what we recommend, FWIW (though Anaconda and other install methods are still fully supported).

I didn’t even think about users doing that (presumably using ! shell commands in IPython), but I really wouldn’t recommend it unless you have your Python interpreter for IPython consoles set to something other than Spyder’s internal built-in environment, as you could accidentally break Spyder itself. However, in Spyder 6 we have a new package/environment manager pane that will allow you to create your own environments to run your code and install, update and remove packages from them using Spyder’s built-in Python, but without needing to modify Spyder’s own internal environment.

Yes indeed I have the python interpreter pointing to my own environment and version of python. I don’t use ! Shell commands just type the pip install directly and it appears to install properly in the correct environment. I am not at my computer at the moment but will check that it is working when I go back to the computer.

Ah, great—sounds good, then.

Ah I see, IPython has some built-in heuristics to automatically run statements starting with pip as shell commands if the name pip is not found in the kernel namespace

In [16]: pip --version
pip 23.1.2 from C:\Miniconda3\envs\spyder-pip\lib\site-packages\pip (python 3.10)

In [17]: pip = None

In [18]: pip --version
Traceback (most recent call last):

  Cell In[18], line 1
    pip --version

NameError: name 'version' is not defined

Glad I came upon this post. I just downloaded Spyder yesterday. I have IDLE v3.12 already installed. I just pointed Spyder to point to this interpreter along with installing spyder from the command prompt:

pip install spyder

Along with giving Spyder access to my previously installed packages, it also updated the editor / interpretor version since the current Spyder installation comes with Python v3.8. Another bonus, which IDLE lacks, is allowing you to automatically stack both the editor and output console, and allowing you to scroll horizontally which greatly eases the development (among many other benefits).

1 Like

Glad you found Spyder useful!

To note, you only need to do one of the two (the standalone installers or pip, preferably the former for reliability’s sake) to install Spyder itself. To get Spyder to work with your existing environments, you just need to install a compatible version of the much more lightweight spyder-kernels package, which Spyder will give you the exact conda and pip commands for if you try to start a kernel in an environment with an incompatible version (and in the future, will offer to optionally install it for you automatically).

Just to note, we plan to update the Python runtime version to 3.11 in the ≈next release of the installers, so Spyder runs considerably faster (and as a side benefit, if you’re using the internal environment to run your own code, it’ll run faster too and on a newer Python version). Spyder itself works on all upstream-supported versions of Python, but there were just some issues to work through with our installation platform.

Indeed; with Spyder, you have a ton of options for window customization: a bunch of default presents to emulate different IDEs, the ability to move, resize and dock/undock/pop out the editor, console and all the other panes around however you like, opening multiple editor tabs, panels, windows or even full editors on different screens, and opening as many consoles as you like, even in different environments.

For beginners, you’ll want to give its interactive execution capabilities to run individual lines, code cells or files a try (create a code cell with a # %% comment; you can even give it a name and it will show up in the outline view). Perhaps its most useful feature, though, its its variable explorer, where you can browse (and even edit, in a pinch) all your top level variables, including numbers, strings, dates/times, lists/tuples/sets, dictionaries, NumPy arrays, Pandas series/dataframes and even arbitrary objects, helping you understand exactly what your code is doing and allowing you to interactively explore your data and code.

1 Like

This will definitely help from jumping additional hoops.

At the time of downloading Spyder, and not being familiar with any of its intricacies, I just happened to try the pip install command since I had no access to the packages that I had already download from IDLE. Prior to this, I had also tried pointing to the python.exe already installed from IDLE, and it did not work. That is when I thought about the pip install spyder command in the command prompt. Glad it worked, tbh. But, as you stated above, if you can automate this somehow, that would be great.

Overall, I am testing/experimenting with Spyder exclusively. This new suite is awesome! I like the feel, the look (great dark mode by the way). The only very small suggestion I have is that in the console, the ‘red’ output would probably look better in the color blue; referring to this (I am in dark mode btw, red doesn’t stand out too much in this version):
Out [97] : # here, the number is arbitrary

But yes, overall, very cool interface and so far, very easy to work with.
Thank you for the development! :ok_hand: :v:

Yes, I noticed that. It is like an on the fly tutorial. You guys were definitely thinking out of the box as they say with this feature.

My hats off to you for sure! :cowboy_hat_face:

What exactly do you mean by “it did not work”, sorry? When attempting to start a new console in the environment, you should have received a message stating that you need to install a compatible version of spyder-kernels in that environment so Spyder can communicate it and enable all its help features, and it should have given you an exact install command to copy/paste for both pip and for conda. Did you instead get some sort of error when you were entering the path to the Python interpreter?

In any case, when you installed spyder in that environment, that pulled in the latest version of spyder-kernels as a dependency, so new consoles were then able to be started as normal.

Thanks for the feedback; we are working on a revamped theme system right now for Spyder 6 that applies to not only syntax highlighting but the entire UI. One thing we’ve done is increase the default contrast on these and other colors, and ensure they are easier to read.

For right now, you can customize the syntax highlighting theme under Preferences > Appearance > Syntax Highlighting Theme to use any colors of your choice.

Great; we’ve worked quite a bit in the past year or two improving the UI/UX, and have a number of further enhancements in this department implemented for the forthcoming Spyder 6.

Yes, I think that you are correct. I believe that that was the message. Like I stated before, not being familiar with Spyder (first day), and not being familiar with the kernel (I did not want to go on an in depth google search either), I just happened to try the command in the command prompt. By sheer coincidence, this happened to work.

Wow, awesome! You guys left no stone unturned. I was actually in this window when I had selected the dark theme. Did not know you could control/set colors on such granular level. :raised_hands:

But all is working now. When is the next release (v6)?

Ah, then as a tip—paying careful attention to the details of error messages is usually the best way to solve them, whereas simply guessing and trying to install a specific package is not always the best idea, as that can easily break things :slight_smile:

We’ve released four alphas already, and the next release within a couple of months should be the first beta. After a couple betas and a release candidate (or two) for testing to ensure everything is ready to go, 6.0.0 stable should hopefully be out by summer-ish :crossed_fingers:

I am in Dark and Spyder 3 main interface modes themes. I attempted changing the background color to black. The change did not take effect. Any reason why?

***** UPDATE *****

In order for the change to take effect, the Interface Theme has to be set to Automatic and not Dark Theme.


Restarting Spyder should also do the trick.

Thanks everyone for the answers, I think I’ll try both Spyder/miniforge and VScode !