Re: suggesting a launcher wrapper script for portable python

Discussion in 'Python' started by Mark Lawrence, Aug 12, 2012.

  1. On 12/08/2012 01:49, Gelonida N wrote:
    > I just started looking at portable Python and was rather surprised, that
    > I didn't find any recommended method in the documentation of how to
    > launch scripts with portable python.
    > Creating py2exe scripts on ones own USB drive seems to be kind of overkill.
    >
    > So here my own thoughts / suggestsions.
    > I'm interestted in feedback of how others use portable pythons
    > and how they run their scripts from a USB stick.
    >
    >
    > Let's assume I install portable python on my USB drive and then I'd like
    > to store self written python scripts on this drive.
    >
    > It would of course be greate if I could just click on the script and
    > they'd be started.
    >
    >
    > However under windows this would not be the case.
    > The python script would either not be started at all or if the PC had
    > his own python installed, then the script would be started with the PC's
    > version of python.
    >
    > Thus a tiny wrapper script would be needed.
    >
    >
    > Suggestion:
    > --------------
    > The current directory structore for portable python (2.7) is (assuming
    > that %PP% is the base directory)
    >
    > %PP%/Python-Portable.exe # launches the python interactive shell
    > %PP%/PyScripter-Portable.exe # launches some IDE
    > %PP%/App
    >
    > Let's assume I add two more directories:
    > %PP%/myscripts # location of all callable scripts
    > %PP%/launchers # location with icons one can click on
    > # to start the scripts in myscripts
    >
    >
    >
    >
    > if I wrote a script named %PP%/myscripts/test1.py,
    > and I created an aproprriate named %PP%/launchers/test1.bat
    >
    > then I could just click on test1.bat and the Python script test1.py
    > would be started. If the wrapper script is written properly, then it can
    > look at its own base name and call the related python script.
    >
    > If I dragged and dropped some filenames on the bat file, then they would
    > be passed to sys.argv of the script.
    >
    > Running the script from command line would also work and the present
    > working directory would be preserved (which might be useful in some cases)
    >
    > If the script name would not be .py, but .pyw then it woudl be started
    > with pythonw.
    > T
    >
    > Below suggested script:
    >
    >
    >
    > @echo off
    > REM
    > =========================================================================
    > REM script to start a python file with portable python
    > REM
    > =========================================================================
    >
    > REM basepath of this .bat file
    > set basepath=%~dp0
    >
    > REM create the name of the python file related to this bat file
    > REM Unfortunately I do not know how to normalyze %pyfile%,
    > REM so we got stuck with the '..'
    > set pyfile=%basepath%..\myscripts\%~n0.py
    >
    > If EXIST "%pyfile%" (
    > REM a normal console python file with .py suffix
    > "%basepath%\..\App\python.exe" "%pyfile%" %*
    > ) ELSE (
    > If EXIST "%pyfile%w" (
    > REM a non console python file with .pyw suffix
    > start "" "%basepath%\..\App\pythonw.exe" "%pyfile%w" %*
    > ) ELSE (
    > REM found neither a .py nor a .pyw file
    > echo found no python file %pyfile%
    > )
    > )
    > REM
    > =========================================================================
    > REM end of script
    > REM
    > =========================================================================
    >
    >
    > One minor drawback of my suggested script would be, that a console
    > window pops up for a few seconds when starting a .pyw file.
    >
    > This could be avoided by using either a small compiled C-file (which
    > sounds like overkill though)
    > or by writing a windows scripting host .wsf file.
    > However I don't know this well enough to replicate my batch file.
    > AN article on SO mentions how to write such a script.
    > However it does not parse command line arguments nor does it
    > automatically determine the scripts file name.
    > So any help for creating a .wsf file starting a .pyw file with command
    > line arguments would be appreciated.
    >
    >
    >
    > An alternativce approach could be to provide a scipt named
    > mk_wrapper.bat
    > If one drags and drops a python script on it, then an apropriate wrapper
    > file would be created in the launcher directory.
    >
    > If well done, then this could be implemented such, that the script may
    > be located in an arbitrary location on the same USB drive.
    >
    >
    >
    > I think it would be great if the official portable python release
    > contained some upport for launching scripts.
    > Perhaps it exists alrady and I just didn't find it?
    >
    > If not,then I wouldn't mind if my script or a similiar sand a related
    > README.txt cript were added to the official release
    >


    This might be a complete waste of time but can you use the new windows
    launcher described here http://www.python.org/dev/peps/pep-0397/ ???


    --
    Cheers.

    Mark Lawrence.
     
    Mark Lawrence, Aug 12, 2012
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. David Thomas
    Replies:
    20
    Views:
    1,483
    Hans Mulder
    Jun 27, 2012
  2. Thomas Jollans
    Replies:
    0
    Views:
    143
    Thomas Jollans
    Aug 12, 2012
  3. Gelonida N
    Replies:
    0
    Views:
    123
    Gelonida N
    Aug 13, 2012
  4. Gelonida N
    Replies:
    0
    Views:
    123
    Gelonida N
    Aug 13, 2012
  5. Thomas Heller
    Replies:
    7
    Views:
    180
    Andreas Röhler
    Feb 1, 2013
Loading...

Share This Page