This website is called LinuxScrew.com so I’ll get the obvious out of the way: the best OS for Python development is Linux. Here’s why.
Why Linux is the Best OS to Develop Python Apps?
…because Linux is the preferred OS of many, many other developers.
That may seem like a silly statement – however – consider that the developer writing the tutorial you are going to use to learn to write Python code will be using Linux, you want to be able to enter the same commands and use the same tools as used in the tutorial.
Linux is also, of course, free and incredibly stable. It’s less prone to attack, which can be a concern – especially if you’re using third party Python packages and aren’t doing your due-diligence by perusing the source code before running them.
Python can be installed and kept up to date with the package managers included with most Linux systems, and the Linux terminal is a powerful tool for managing Python and Python packages with PyPi.
It’s also just a good opportunity to learn how to use Linux if you aren’t familiar already. Learn and develop with Python while you learn how to use the industry-standard Operating System for developers – two birds with one stone.
Developing for the Web
Most web servers run a variant of Linux. Linux is ubiquitous and is the OS of choice for most cloud hosts – tutorials are written for it, monitoring tools are tailored for it – so it’s the best OS to run your online servers.
So, if the server you’re going to be hosting a Python-powered web application or service is running on Linux, it makes sense for your development environment to be as close to that as possible. It’ll make testing and debugging easier, and will let you test your deployment scripts locally.
You can also use a containerization tool like Docker to containerize your local environment for deployment – allowing you to bundle up your application and it’s dependencies and push it into production with minimal (if any) changes.
The containerized version of your Python app would hold all of the dependencies and configuration for your app, and run it in your production environment without it having to be specifically tailored to run your application – it just needs to be broadly similar and be running the same OS.
What if I’m Targeting a Different OS?
Then use that OS, damnit.
If you’re developing a desktop application, work as close to what you expect your customer/user to be running as you can while developing.
This means if you expect the majority of your users to be running Windows, develop on Windows and test for other operating systems once you’ve got your Windows version running happily,
Take notes of the environment while developing!
Did you have to install some external tools to get a third party package to work (e.g., something from the apt package manager on Linux, or a third party application on Windows?) It may now be a dependency that your end users now have to have installed for your app to work!
Actually, take notes on everything while developing – tools used, why you did something the way you did – random thoughts about future features – It’ll save you some headaches.