ted
ted

Reputation: 49

How to compile the CPython python interpreter from source and build an installer for it

I don't even know the right way to put my question but i will try my best. I downloaded (Python-3.4.2.tar) the source code of a python interpreter from www.python.org I extracted the files(using 7-zip). Now lets say i latter want to use the unziped/extracted fies to create an installer i.e put it in a form that i can double click and Python-3.4.2 will be installed in my computer. i guess it is called creating a build distriution. I know i can just download Python-3.4.2.exe from the site and install right away but i want to know how it goes from being source code to becoming something one can install.

Upvotes: 2

Views: 5692

Answers (3)

Kevin Smyth
Kevin Smyth

Reputation: 1947

Here's a starting point for compiling:

https://github.com/python/cpython/blob/2.7/PCbuild/readme.txt

I was able to compile 2.7.13 with:

cd PCBuild
cmd /c get_externals.bat
cmd /c build.bat -e  --no-tkinter "/p:PlatformToolset=v100"

3.4 may require a later compiler.

Here's how to build an installer:

https://github.com/python/cpython/blob/2.7/Tools/msi/README.txt

Upvotes: 1

motoku
motoku

Reputation: 1581

Basically, I think what you are asking is how you can distribute the Python runtime along with your program. The process is pretty simple. First, you may want to take a look at Python's distutils. Secondly, you will need to distribute the Python runtime. Python is currently released within installation binaries for pretty much every major operating system. You have the option of compiling target system(s) yourself in order to make Python silently install.

You will then need to decide where you want the files to go. Most people don't like this sort of behavior, so I recommend putting the files in your programs directory. Shortcuts, system variables, et cetera will need to be looked into.

As another option you can consider porting your script(s) to Jython, as most people tend to have at least the Java runtime. In the process of porting your code there is a way of constructing Java .class files with Jython when coded a certain way. They can then be placed into an executable Jar file. Easy peasy, but I haven't tried this myself, to be honest.

If you want to stick with pure Python, the last hurtle is putting everything in one file. There are plenty of tools for that. I would try Github for starters. For bonus points you can always code your own self-extracting binary.

Post Script: With the title changed, I think you are looking for Creating Build Distributions. It is the second link within the Google results for the query "how to compile python installer". Further down the same page I found this gem.

Upvotes: 0

das-g
das-g

Reputation: 9994

For building the CPython python interpreter from source, you'll want to have a look at the instructions at https://docs.python.org/devguide/

These instructions probably also (somewhere) contain the steps to produce a Windows installer, which seems to be done with some tool called PCbuild.

Upvotes: 0

Related Questions