Python on IIS/Azure App Services (Windows) was quite a popular option to go (when Azure was still called Windows Azure), for production sites as well. You can utilize either HttpPlatformHandler or wfastcgi, so that IIS forwards traffic to the Python processes.
However, the real challenges come from the fact that Python web frameworks/apps are usually not quite well developed/tested on Windows, so if anything breaks you are almost certain to be the minority user base that many framework/app vendors neglect.
Even Microsoft decided to abandon its attempts on Python on IIS/Windows, and urges its customers to migrate to Azure App Services (Linux),
Important
Microsoft has deprecated the Python extensions for App Service on
Windows as described in this article in favor of a direct deployment
to App Service on Linux.
https://docs.microsoft.com/en-us/visualstudio/python/managing-python-on-azure-app-service?view=vs-2019
So which way to go isn't hard to see.
For on-premise, you can use Windows Server to host Linux VMs (Hyper-V) or use Linux Docker containers, or use a Linux server box directly. Even the most Windows centric customers I worked with have some Linux Docker containers running today.
Note that this is not only applicable to Python web apps. PHP/Go/Java/Node.js web apps face the same challenges, so they are better to be hosted on Linux.