Launching scripts in Ubuntu ?

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Stef Mientki

    Launching scripts in Ubuntu ?

    hello,

    I'm not familiar with Linux / Ubuntu,
    still trying to get my application working under these operating systems.

    I've a script "file_support.p y",
    now when I'm in Ubuntu, open a command window and go to the directory
    where that file is,
    I can launch the script with :
    "python file_support.py "
    and it works great

    Now when I want to run the script from another script, let's call it "
    test.py"
    where this is the contents of test.py:

    import subprocess
    subprocess.Pope n ( [ 'python', 'file_support.p y', ] )

    The script "file_suppo rt" is executed correctly,
    but the python interpreter is not closed,
    I've to close it manual by pressing ENTER.

    What should I change ?

    thanks,
    Stef Mientki
  • Diez B. Roggisch

    #2
    Re: Launching scripts in Ubuntu ?

    Stef Mientki wrote:
    hello,
    >
    I'm not familiar with Linux / Ubuntu,
    still trying to get my application working under these operating systems.
    >
    I've a script "file_support.p y",
    now when I'm in Ubuntu, open a command window and go to the directory
    where that file is,
    I can launch the script with :
    "python file_support.py "
    and it works great
    >
    Now when I want to run the script from another script, let's call it "
    test.py"
    where this is the contents of test.py:
    >
    import subprocess
    subprocess.Pope n ( [ 'python', 'file_support.p y', ] )
    >
    The script "file_suppo rt" is executed correctly,
    but the python interpreter is not closed,
    I've to close it manual by pressing ENTER.
    What do you mean "it's not closed"? Which window is taking the enter, and
    how do you run test.py?

    Diez

    Comment

    • Stef Mientki

      #3
      Re: Launching scripts in Ubuntu ?

      Diez B. Roggisch wrote:
      Stef Mientki wrote:
      >
      >
      >hello,
      >>
      >I'm not familiar with Linux / Ubuntu,
      >still trying to get my application working under these operating systems.
      >>
      >I've a script "file_support.p y",
      >now when I'm in Ubuntu, open a command window and go to the directory
      >where that file is,
      >I can launch the script with :
      > "python file_support.py "
      >and it works great
      >>
      >Now when I want to run the script from another script, let's call it "
      >test.py"
      >where this is the contents of test.py:
      >>
      >import subprocess
      >subprocess.Pop en ( [ 'python', 'file_support.p y', ] )
      >>
      >The script "file_suppo rt" is executed correctly,
      >but the python interpreter is not closed,
      >I've to close it manual by pressing ENTER.
      >>
      >
      What do you mean "it's not closed"?
      well the command prompt (if it is called that way in Linus) is not returned.

      When I run file_support, the command window looks like this
      >>>python file_support.py
      ...... all kinds of output
      >>>
      When I run test.py (which calls fie_support) , I get this
      >>>python test.py
      ..... all kinds of output (the same as before)

      Now I've to explicitly press an enter to get the command prompt back.
      This might not sound important,
      but the problem is somewhat more complex,
      all these scripts are ran from another program,
      and although everything works fine under windows,
      the program hangs on Ubuntu.
      So I guess that this is the (first) problem to solve.

      thanks,
      Stef




      Which window is taking the enter, and
      how do you run test.py?
      >
      Diez
      --

      >

      Comment

      • Diez B. Roggisch

        #4
        Re: Launching scripts in Ubuntu ?

        >What do you mean "it's not closed"?
        well the command prompt (if it is called that way in Linus) is not
        returned.
        >
        When I run file_support, the command window looks like this
        >>>python file_support.py
        ..... all kinds of output
        >>>
        >
        When I run test.py (which calls fie_support) , I get this
        >>>python test.py
        .... all kinds of output (the same as before)
        >
        Now I've to explicitly press an enter to get the command prompt back.
        This might not sound important,
        but the problem is somewhat more complex,
        all these scripts are ran from another program,
        and although everything works fine under windows,
        the program hangs on Ubuntu.
        So I guess that this is the (first) problem to solve.
        This looks odd. I've never seen a *shell* display ">>>" as prompt. So it
        looks as if you mix stuff between the shell (bash, tcsh, whatever) and
        python in the above. Are you *inside* the python interpreter already when
        typing "python test.py"?

        And if *not*, does typing e.g. "ls <return>" work for you, right after the
        test.py is run? Then there is no "getting back of the prompt", it's just
        that a last newline is .. well, not even missing, just not printed.
        Consider this (I use $ for the shellpromt):

        $ python -c "import sys;sys.stdout. write('hello')"
        hello$

        Additonally, you might want to check out the Popen-object-reference for the
        wait-call, but actually that shouldn't change anything with regards to
        pressing enter or not.

        Diez

        Comment

        • Stef Mientki

          #5
          Re: Launching scripts in Ubuntu ?

          Diez B. Roggisch wrote:
          >>What do you mean "it's not closed"?
          >>>
          >well the command prompt (if it is called that way in Linus) is not
          >returned.
          >>
          >When I run file_support, the command window looks like this
          > >>>python file_support.py
          >..... all kinds of output
          > >>>
          >>
          >When I run test.py (which calls fie_support) , I get this
          > >>>python test.py
          >.... all kinds of output (the same as before)
          >>
          >Now I've to explicitly press an enter to get the command prompt back.
          >This might not sound important,
          >but the problem is somewhat more complex,
          >all these scripts are ran from another program,
          >and although everything works fine under windows,
          >the program hangs on Ubuntu.
          >So I guess that this is the (first) problem to solve.
          >>
          >
          This looks odd. I've never seen a *shell* display ">>>" as prompt.
          ">>>" stands for:
          stef@stef-desktop:/media/disk/Data_Python_25/support$
          So it
          looks as if you mix stuff between the shell (bash, tcsh, whatever) and
          python in the above. Are you *inside* the python interpreter already when
          typing "python test.py"?
          >
          So no
          And if *not*, does typing e.g. "ls <return>" work for you, right after the
          test.py is run?
          yes it does
          Then there is no "getting back of the prompt", it's just
          that a last newline is .. well, not even missing, just not printed.
          Consider this (I use $ for the shellpromt):
          >
          $ python -c "import sys;sys.stdout. write('hello')"
          hello$
          >
          Additonally, you might want to check out the Popen-object-reference for the
          wait-call, but actually that shouldn't change anything with regards to
          pressing enter or not.
          >
          ok It seems to be solved now,
          In creating a small example to emphasize the problem,
          I found the difference between Win and Linux:
          In windows "shell=True " and in Linux "shell=Fals e"
          PID = subprocess.Pope n( arguments,
          cwd = cwd ,
          stdout = subprocess.PIPE ,
          stderr = subprocess.PIPE ,
          shell = ( os.name == 'nt') )
          so the above statement seems (at least for the moment) solve all the
          problems.

          thank you all,
          Stef

          Comment

          • Gabriel Genellina

            #6
            Re: Launching scripts in Ubuntu ?

            En Tue, 14 Oct 2008 10:46:34 -0300, Stef Mientki <stef.mientki@g mail.com>
            escribió:
            >>well the command prompt (if it is called that way in Linus) is not
            >>returned.
            >>>
            >>When I run file_support, the command window looks like this
            >> >>>python file_support.py
            >>..... all kinds of output
            >> >>>
            >>>
            >>When I run test.py (which calls fie_support) , I get this
            >> >>>python test.py
            >>.... all kinds of output (the same as before)
            >>>
            >>Now I've to explicitly press an enter to get the command prompt back.
            ok It seems to be solved now,
            In creating a small example to emphasize the problem,
            I found the difference between Win and Linux:
            In windows "shell=True " and in Linux "shell=Fals e"
            PID = subprocess.Pope n( arguments,
            cwd = cwd ,
            stdout = subprocess.PIPE ,
            stderr = subprocess.PIPE ,
            shell = ( os.name == 'nt') )
            so the above statement seems (at least for the moment) solve all the
            problems.
            I'd say there is no problem. It just *appears* to be one. The first
            program finishes, and the shell displays its prompt, while the child is
            still outputting things. I bet you can see the stef@stef-desktop...$
            somewhere in the output.

            It's like executing:
            $ ls&
            the shell prompt is shown as soon as the ls (background) process starts,
            but gets lost in the output.
            Diez B. Roggisch wrote:
            >Additonally, you might want to check out the Popen-object-reference for
            >the
            >wait-call, but actually that shouldn't change anything with regards to
            >pressing enter or not.
            Calling wait in the parent script would prevent it to finish before the
            child, avoiding the issue.

            --
            Gabriel Genellina

            Comment

            Working...