Unable to install Python on Windows 8

Since this problem comes from that pip comes with python 3.4 installer, you can simply uncheck the pip install option in the installer and try to install pip manually later.


I ran into the same or at least similar error, but I couldn't find a solution. I had just uninstalled Python 3.4.1 and was trying to install Python 3.4.2.

I tracked down three different issues in my environment, but #3 is what really fixed my issue. The first two items didn't make much difference for my situation, I just included them as additional options/ideas for others (particularly when installing a second Python version, etc.).

  1. Left-over environment variables. I had environment variables from the 3.4.1 installation set. When installing multiple versions, this can cause an error during installation. You may need to remove these environment variables.

    enter image description here

  2. System PATH. Python was still in the system PATH. Again, when installing multiple versions, this can cause an error during installation. You may need to remove these entries from your PATH.

    enter image description here

  3. The actual problem: Custom open/command in the Registry. I have this registry entry here, (plus adding .PY to the PATHEXT envar), so I can run Python programs using only app.py, instead of having to type in PYTHON app.py.

    enter image description here

The problem was that the new version of Python was getting partially installed and then it was trying to run some Python commands during the installation. Because of my custom registration, it was trying to run the Python code using the old path to python.exe, which was of course uninstalled. So, it would fail every time.

So, removing the custom open/command allowed the installation to succeed. I added it back in, once the installation was completed.

A couple things to note. I wouldn't have had the problem if I wasn't changing the installation location. And, I could have just updated the open/command entry to point to the new location instead of removing it and re-adding it afterwards.