Q:

Creating a Python Makefile That Creates an Executable Filer Within The Same Folder

I am trying to make a python makefile for a program called python_program.py that creates an executable file called "python_program".  I have created a makefile that when make is typed into the ubuntu terminal, it runs and outputs the contents of python_program.py.  However, it is not creating the executable file "python_program" in the folder where the makefile and the program are.  I am not sure where and what I am supposed to write for the executable file to be created.  Could someone please direct me as to why my code is not creating this executable file "python_program".  The code I have is the following:
#! /usr/bin/env python
all: python_program.py
        chmod +x python_program.py
        ./python_program.py

Here's the assignment:

Use the file python_program.py to create an executable file called python_program.  Assume that your Python Makefile is in the same directory as the python_program.py, and therefore, when you run make in that directory, your Python Makefile will create a python_program executable.  Your Python Makefile must recreate python_program when python_program.py changes.  There are several ways to approach this (since there’s nothing to compile).  For instance, you can take advantage of the shebang functionality, which allows a file that can be interpreted to be executed.  This requires that the file is executable (chmod +x filename). 

A:

You don't really want or need a Makefile for this.  On Unix, any text file which contains code in an interpreted language can be a script.  The shebang should be the very first line of the script file itself, and then the file needs to be made executable with chmod, like you already know. 
Further edits to the file will generally preserve these traits (obviously don't mess with the shebang line while editing) so they only need to be added once. 
A common beginner mistake is editing the file on Windows, which might save the file in the wrong encoding. 
Anyway, here is a simple Makefile which satisfies your requirements:
python_program: python_program.py
    python ./$< >$@
    chmod +x $@

Here's one which explicitly adds a shebang to the new file:
python_program: python_program.py
    printf '#! /usr/bin/env python\n' >$@
    python ./$< >>$@
    chmod +x $@

Both of these assume that python_program.py prints its own source to standard output.