469,332 Members | 6,874 Online
Bytes | Developer Community
New Post

Home Posts Topics Members FAQ

Post your question to a community of 469,332 developers. It's quick & easy.

Passing arguments to a command line from a python script

Please forgive me if what I'm asking is non sense...

I created a little program to authomate the creation of the "setup.py"
script for py2exe.
It simply prompts for the main executable script name and then creates
setup.py, as follows:

# this is "makesetup.py"

nombre = raw_input('File name?: ')

f = open('setup.py', 'w')

f.write('''
from distutils.core import setup
import py2exe

setup( name = "%s",
windows = ["%s.pyw"],
data_files = [ (".", ["%s.rsrc.py"]) ]
)
''' %(nombre, nombre, nombre))

f.close()

# end of script

What I want now is execute the script I just created.
As far as I know, the only way to execute the script is from a command
line and typing "setup.py py2exe".

Can I do this authomatically right from my program?
If so, how?

Any hint would be highly appreciated...
regards,
Luis

Mar 19 '07 #1
6 2713
En Mon, 19 Mar 2007 20:46:56 -0300, Luis M. González <lu*****@gmail.com>
escribió:
What I want now is execute the script I just created.
As far as I know, the only way to execute the script is from a command
line and typing "setup.py py2exe".
A few ways:
- os.system("commandline"). Simplest way, but you don't have much control,
and it blocks until the process finishes.
- os.popen[234]? or the functions in the popen2 module
- the subprocess module - the most complete way, but simple enough for
most cases.

--
Gabriel Genellina

Mar 20 '07 #2
On Mar 19, 9:25 pm, "Gabriel Genellina" <gagsl-...@yahoo.com.ar>
wrote:
En Mon, 19 Mar 2007 20:46:56 -0300, Luis M. González <luis...@gmail.com>
escribió:
What I want now is execute the script I just created.
As far as I know, the only way to execute the script is from a command
line and typing "setup.py py2exe".

A few ways:
- os.system("commandline"). Simplest way, but you don't have much control,
and it blocks until the process finishes.
- os.popen[234]? or the functions in the popen2 module
- the subprocess module - the most complete way, but simple enough for
most cases.

--
Gabriel Genellina


I'm sorry, but still I can't figure out this...
Would you please show me a sample usage of os.system or os.popen for
passing arguments to the command line?
In this case, I should pass to the command line "setuppy py2exe".

Thanks!
Luis
Mar 20 '07 #3
On Mar 19, 9:42 pm, "Luis M. González" <luis...@gmail.comwrote:
On Mar 19, 9:25 pm, "Gabriel Genellina" <gagsl-...@yahoo.com.ar>
wrote:
En Mon, 19 Mar 2007 20:46:56 -0300, Luis M. González <luis...@gmail.com>
escribió:
What I want now is execute the script I just created.
As far as I know, the only way to execute the script is from a command
line and typing "setup.py py2exe".
A few ways:
- os.system("commandline"). Simplest way, but you don't have much control,
and it blocks until the process finishes.
- os.popen[234]? or the functions in the popen2 module
- the subprocess module - the most complete way, but simple enough for
most cases.
--
Gabriel Genellina

I'm sorry, but still I can't figure out this...
Would you please show me a sample usage of os.system or os.popen for
passing arguments to the command line?
In this case, I should pass to the command line "setuppy py2exe".

Thanks!
Luis
aaron@athena:~$ python
Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02)
[GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>import os
rt = os.system("ls")
apps Firefox_wallpaper.png s2 tux_sshot_0.ppm
xorg.conf.diff
Desktop media s3 work
downloads permutation.py squeak workspace
Examples permutation.pyc trackers xorg.conf.aiglx
>>rt
0
>>>
This implies that `os.system("setuppy py2exe")` should do what you
want.

Mar 20 '07 #4
On Mar 19, 10:49 pm, "zacherates" <zachera...@gmail.comwrote:
On Mar 19, 9:42 pm, "Luis M. González" <luis...@gmail.comwrote:
On Mar 19, 9:25 pm, "Gabriel Genellina" <gagsl-...@yahoo.com.ar>
wrote:
En Mon, 19 Mar 2007 20:46:56 -0300, Luis M. González <luis...@gmail..com>
escribió:
What I want now is execute the script I just created.
As far as I know, the only way to execute the script is from a command
line and typing "setup.py py2exe".
A few ways:
- os.system("commandline"). Simplest way, but you don't have much control,
and it blocks until the process finishes.
- os.popen[234]? or the functions in the popen2 module
- the subprocess module - the most complete way, but simple enough for
most cases.
--
Gabriel Genellina
I'm sorry, but still I can't figure out this...
Would you please show me a sample usage of os.system or os.popen for
passing arguments to the command line?
In this case, I should pass to the command line "setuppy py2exe".
Thanks!
Luis

aaron@athena:~$ python
Python 2.4.4c1 (#2, Oct 11 2006, 21:51:02)
[GCC 4.1.2 20060928 (prerelease) (Ubuntu 4.1.1-13ubuntu5)] on linux2
Type "help", "copyright", "credits" or "license" for more information.>>>import os
>rt = os.system("ls")

apps Firefox_wallpaper.png s2 tux_sshot_0.ppm
xorg.conf.diff
Desktop media s3 work
downloads permutation.py squeak workspace
Examples permutation.pyc trackers xorg.conf.aiglx
>rt
0

This implies that `os.system("setuppy py2exe")` should do what you
want.


It works!
Thank you, this is just what I wanted.

Luis

Mar 20 '07 #5
Luis M. González wrote:
On Mar 19, 10:49 pm, "zacherates" <zachera...@gmail.comwrote:
>This implies that `os.system("setuppy py2exe")` should do what you
want.

It works!
Thank you, this is just what I wanted.
You'll get better error checking if instead you do::
>>import subprocess
subprocess.call(['setup.py', 'py2exe'])
Actually, you probably should really be doing::
>>subprocess.call(['python', 'setup.py', 'py2exe'])
so that you don't have to assume the OS knows how to run a .py file.

STeVe
Mar 20 '07 #6
On Mar 19, 11:52 pm, Steven Bethard <steven.beth...@gmail.comwrote:
Luis M. González wrote:
On Mar 19, 10:49 pm, "zacherates" <zachera...@gmail.comwrote:
This implies that `os.system("setuppy py2exe")` should do what you
want.
It works!
Thank you, this is just what I wanted.

You'll get better error checking if instead you do::
>>import subprocess
>>subprocess.call(['setup.py', 'py2exe'])

Actually, you probably should really be doing::
>>subprocess.call(['python', 'setup.py', 'py2exe'])

so that you don't have to assume the OS knows how to run a .py file.

STeVe
Noted.
Thanks STeVe!


Mar 20 '07 #7

This discussion thread is closed

Replies have been disabled for this discussion.

Similar topics

2 posts views Thread by John Leslie | last post: by
1 post views Thread by Casey Bralla | last post: by
6 posts views Thread by Jon Hewer | last post: by
5 posts views Thread by Chris Hieronymus | last post: by
3 posts views Thread by Rocky Zhou | last post: by
5 posts views Thread by kyosohma | last post: by
4 posts views Thread by Keith Hughitt | last post: by
1 post views Thread by haryvincent176 | last post: by
reply views Thread by Marylou17 | last post: by
1 post views Thread by Marylou17 | last post: by
By using this site, you agree to our Privacy Policy and Terms of Use.