From: King on
Hi,

I have created a simple tool(python script) that creates a self
sufficient package ready for deployment. Current implementation is
based on shell scripting to set environment for the app and finally
execute "python main.py".

I am planning to convert "main.py" into an executable. The plan is to
rip the unnecessary code from source code that produce python
executable such as command line arguments etc, use "main.py" as python
string (hardcoded inside executable source) and execute it using
"exec" or similar methods and finally creates executable.

Am I right here? Is this is the correct approach?

For example a simple script:

import os
import math
print math.sin(23.0)
print os.getenv("PATH")

Once I'll convert above script as i have mentioned above in an
executable say: "myapp", executing "myapp" will print messages on
console.

Cheers

Prashant
From: Stefan Behnel on
King, 20.07.2010 18:45:
> I have created a simple tool(python script) that creates a self
> sufficient package ready for deployment. Current implementation is
> based on shell scripting to set environment for the app and finally
> execute "python main.py".
>
> I am planning to convert "main.py" into an executable. The plan is to
> rip the unnecessary code from source code that produce python
> executable such as command line arguments etc, use "main.py" as python
> string (hardcoded inside executable source) and execute it using
> "exec" or similar methods and finally creates executable.
>
> Am I right here? Is this is the correct approach?

From what you write here, I'm not exactly sure what you want to achieve,
but...


> For example a simple script:
>
> import os
> import math
> print math.sin(23.0)
> print os.getenv("PATH")
>
> Once I'll convert above script as i have mentioned above in an
> executable say: "myapp", executing "myapp" will print messages on
> console.

Assuming that Python is installed on the machine and readily runnable from
the PATH, this will make the script executable:

#!/usr/bin/env python

import os
import math
...

Note that the file must have the executable bit set.

Search for "shebang", which is the spelled-out name for the "#!" special
file prefix.

Stefan

From: King on
Hi Stefan,

Well, the idea is similar to package tools like pyinstaller or
cx_freeze. There approach is slightly different then what I intend to
do here.

You have to pass the name of the script to python executable("python
main.py") in order to execute it. What I mean here is to create python
executable using python executable source code only(not compilation of
entire python using source code) and insert "main.py" contents in
source code(hardcoded) and produce a new executable.

When you run that executable, it should run the "main.py", which was
hard coded while building using fixed string or any other method. The
executable is actually a modified version of python executable. It
won't take any argument because we'll rip that piece of code out.

Hope this will clear out.

Cheers

prashant