title: Why are there two unique copies of Python 3.7.0 installed on Windows in vastly different locations?
body: <p>I have Python 3.7.0 installed on Windows. I only followed the Installer one time, but I have two different executables of python installed in two different locations.</p>
  
  <pre><code>C:\Windows\py.exe
  </code></pre>
  
  <p>with a white icon, 887 KB (908,952 bytes); and</p>
  
  <pre><code>C:\Users\myuser\AppData\Local\Programs\Python\Python37\python.exe
  </code></pre>
  
  <p>with a black icon, 97.6 KB (99,992 bytes)</p>
  
  <p>The Python Installer specifies the second path, as shown in the Installation <a href="https://docs.python.org/3/_images/win_installer.png" rel="nofollow noreferrer">guide</a>, but Git Bash, Cygwin, and MSYS+MingW all report the first one as valid and not the second one:</p>
  
  <pre><code>$ which python
  which: python: unknown command
  
  $ which py
  /c/WINDOWS/py.exe
  </code></pre>
  
  <p>And PowerShell shows that both of them are Python 3.7.0, despite their different file sizes:</p>
  
  <pre><code>PS C:\Users\myuser\AppData\Local\Programs\Python\Python37&gt; ./python.exe -V
  Python 3.7.0
  
  PS C:\Users\myuser\AppData\Local\Programs\Python\Python37&gt; py -V
  Python 3.7.0
  </code></pre>
  
  <p>The first path does not have a "Scripts" sub-folder, but the second one does, however the System Environment variables point to a "Scripts" folder at the path that has no "Scripts" folder:</p>
  
  <p>PATH variable:
  <code>%PYTHON_HOME%\</code>
  <code>%PYTHON_HOME%\Scripts\</code></p>
  
  <p>PYTHON_HOME variable:
  <code>C:\Windows\</code></p>
  
  <p>So where does the "py.exe" store libraries? Why do both of them correctly run python scripts and have the same outputs? And why is there an install at <code>C:\Windows\</code> anyway? I had to physically add the second one to the PATH variable to be able to use <code>pip</code> from a terminal without typing <code>py -m pip</code>, and I do not want to type the long version.</p>