Compiling Python 3.6.9 on Windows


I am trying to install Python 3.6.9 and am having problems. First I downloaded Python-3.6.9-tgz, then extracted it to get Python-3.6.9.tar, then extracted that to get a folder called Python-3.6.9

This has setup.py in it. So on windows 10 I opened the command prompt and navigated to that folder and typed: setup.py install. This opens up visual studio that I already have and does nothing. Please let me know if I need to do something else.

I tried to add environmental variables but nothing has worked.


First of all: You should really just download Python 3.7.4. Python 3.7 is backwards compatible with Python 3.6.

The Python 3.6.9 release is a security-only release primarily aimed at Long-term-support Linux distributions that must continue to support 3.6.x packages. As such no binary installers are provided, and Windows users are instead expected to have upgraded to 3.7 already.

If you still feel you want to compile Python 3.6.9, then the README.rst file includes installation instructions for Unix, Linux, BSD, macOS, and Cygwin, and for Windows points you to a dedicated file:


On Windows, see PCbuild/readme.txt.


which can be found online at https://github.com/python/cpython/blob/v3.6.9/PCbuild/readme.txt. The same directory holds a batch script designed to make building Python easier on Windows. From the above documentation:

<blockquote> <h2>Building Python using the build.bat script</h2>

In this directory you can find build.bat, a script designed to make building Python on Windows simpler. This script will use the env.bat script to detect one of Visual Studio 2015, 2013, 2012, or 2010, any of which may be used to build Python, though only Visual Studio 2015 is officially supported.

By default, build.bat will build Python in Release configuration for the 32-bit Win32 platform. It accepts several arguments to change this behavior, try build.bat -h to learn more.


The setup.py script is used <em>indirectly</em> by the build process. Don't run it yourself.



  • Section of code not executing in source mode
  • XML serialization library interoperability between Java and Python
  • Eclipse's Emulator (ArcGIS Android App)?
  • do I have to scope query output in Coldfusion?
  • What is the idiomatic way to build functions over newtypes (“wrapped types”) in Haskell?
  • What is the solution for “The Type or namespace 'AjaxControlToolkit' could not be found…”?
  • How can I protect Amazon SimpleDB from SQL Injection?
  • Purpose of roles tags in tomcat-users.xml?
  • GPS103 Tracker Listening Application in C#
  • laravel 5.1 auth csrf token mismatch
  • Why transaction here is treated as two separate transactions?
  • Two view models ,one for the whole page & the other for a small area
  • Getting this “org.xhtmlrenderer.render.BlockBox cannot be cast to org.xhtmlrenderer.newtable.TableBo
  • Creating Neural Network for un-encountered inputs
  • “We were able to connect to the database server” error in WordPress
  • Where to store larger data for Outlook Web App?
  • Java PNG to JPG Bug
  • How deleteLater() actually works in qt?
  • How to read config files with section in bash shell
  • Spring Security OAuth 2 with form login
  • Get an image from the video
  • using vtkTimerCallback with QVTKRenderWindowInteractor not working
  • Google Compute instance receiving email
  • Validating a Firebase Key [duplicate]
  • Jekyll - How do I create pages in the root directory?
  • Get spring boot pagination number starts from 1 instead of 0
  • How to reduce a DAG by replacing each longest non-branching path by an edge connecting the start and
  • Videos won't upload
  • android : speech recognition what are the technologies available
  • jQuery Ajax call to WCF service returning “Method not allowed (405)”
  • How to use Typescript with libraries like Ampersand.js that parse configs to build prototypes
  • Java Collections.shuffle() weird behaviour [closed]
  • Stop an element moving with padding on hover
  • Separating definition/instantiation of template classes without 'extern'
  • I am consuming a WCF service that requires headers from a .NET 2 website. How can I programmatically
  • `$http:badreq Bad Request Configuration` - from angular post method, what is wrong here?
  • Debug `Unexpected end of JSON input Error` on content script