(* if you have both Python 2 and Python 3 on your machine. If you only have Python 3, you probably don't need this article.)

I wanted to install Python 3 on Windows 10, and use it in a virtualenv. Eventually I wanted to get my Flask web application to run on Python 3.

The steps for that are not too difficult, but there are a few gotchas along the way. And you know what that means, Gentle Reader. It means that when I have to do it again -- let's say, months from now -- I will have to hunt down the solutions to all the gotchas again. So I decided to take lessons from the past and write it all down. And share it with those of you who don't want waste time hunting down the answers. So, this is what I did.

Let's say you are an ordinary developer, not a wizard at administrating the Apache server. You are looking for a place to host your side project, a Flask application (Flask is a Python web framework). To have the most control at only a small price, you provision a cloud server at your friendly cloud hosting company (Dreamhost, in my case). Perhaps you were not satisfied with free hosting sites, because they give you so little computing power that you quickly max out your available database connections. And so you decide to run it on your own server.

Just to be clear, this article does not deal with production-caliber Flask applications. It describes a minimal, very basic deployment options for simple applications such as your side projects or hobby projects. It does not address, for example, Python virtualenv. Maybe in the future.

My impression of Evernote API documentation is that it is not very friendly to Python beginners, and rather short on examples. So I wrote this document on how to write a simple script that will get notes from a notebook.