Migrating out of Conda on Windows 10

Conda is great. I think I’ve started using it on Windows many years back because it just worked, and worked well. Especially when it came to installing packages that need to be built - some of my machines just didn’t have the toolset required and Conda would just download pre-built binaries. Everything was just great. Those days are now gone, Python on Windows works great actually, and I don’t see a point in Conda anymore.

The other reason for me is Conda is fat. Well, maybe not, as I was using Miniconda anyway which is probably comparable to standard python distribution in size.

Another reason is that wherever I’d deploy or run (read non-windows remote Linux box) there would be no Conda. You’d normally get to use python that came with Linux and it would work well actually.

More than that, some packages are just not in Conda repo, so I’d end up using pip for one package, and conda for other, and things juts get a bit messy. On the other hand, any package i used from conda was always in the official pypi, but not the other way around. So theoretically I could just use official distribution anyway.

Microsoft Has Changed

Windows the the best desktop OS but it’s always a pain. But it’s changing and wow, Python can now be installed from the official Windows Store, and it is even mentioned in the official documentation (ignore the “unstable” bit as it was a while ago).

Reading through it, another interesting but unrelated bit is embeddable packages.

In fact, if you try to launch python from the terminal, Windows 10 will open Store with Python automatically and offer to install. Well done, Microsoft!

Now, the cool thing about this version of Python is that it’s a store app. Little well known fact about store apps is that they run in containers (i.e. Docker but more lightweight and they can have UI). This is one of the things I personally love about Windows, and there are not many things to love about it :) It also makes the usual tools like IDLE available out of the box:

which theoretically makes your machine Python-ready in a few seconds from fresh.

This also keeps your Python installation up to date - no more manual conda updates.

So far everything works - of course venv is not as good as conda environment manager, but I can and should manage, as deployed code should use venv anyway - so it’s probably good to use it from the very beginning. Of course there are other environment managers for Python with more advanced options, however I didn’t have a need for them, and it might throw me back to conda situation anyway.

Have a question⁉ Contact me.