Win32: Running python programs from a Cygwin shell
David Bolen
db3l at fitlinxx.com
Tue Feb 17 00:53:28 EST 2004
More information about the Python-list mailing list
Tue Feb 17 00:53:28 EST 2004
- Previous message (by thread): Win32: Running python programs from a Cygwin shell
- Next message (by thread): Win32: Running python programs from a Cygwin shell
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
JoeSmith <JoeSmith at IDontWantSpam.bogus.bogusaddress.com> writes: > You could probably write a replacement for env that uses cygpath -m on > the script file. So, your env could call original env then do cygpath > -m on the second paramter. The one thing to think about is what the > shell might do to other file/directory paramters passed to your > script. So, does it convert > > foo.py . > > into: > > python /cygdrive/h/bin/foo.py python /cygdrive/h/bin/ > > Then your python script might not work. So, do you run cygpath on all paramters? > (...) > The other option would be to write a special alias/script just for > foo.py to handle on the oddities. This is what I did to get it to > execute gvim for win32. I wrote a shell function to go through all > paramters and run cygpath -m > on everything that does not begin with a '-'. That sounds very similar to how I have my system setup. I've got bash functions defined to translate just the first (non-option) argument to Windows form for use from my bash prompt. I haven't really found it necessary to process all subsequent arguments (on the rare occasion I need it I just use `cygpath` myself), and as you point out it might adversely affect how the commands perceive the input. I tend to run everything explicitly with "py##" aliases (or python) from the command line because I bounce between python versions a lot, so I don't depend on the Windows .py mapping, but presumably a similar approach could work by an alias for "env". So for example, my Python relevant section from my .bashrc: - - - - - - - - - - - - - - - - - - - - - - - - - # # Function to pre-process first argument (skipping past options) of a command # with cygpath to translate paths to for Windows tools. # function wpath { typeset -i cmdstart=1 local cmd="" local args="" while arg=${*:$cmdstart:1} && [ "${arg:0:1}" == "-" ]; do cmdstart=cmdstart+1 done if [ $# -ge $cmdstart ]; then cmd=`cygpath -w ${*:$cmdstart:1}` args=${*:$((cmdstart+1))} fi echo ${*:1:$((cmdstart-1))} $cmd $args } # # Function used to execute a command with its first argument translated to # windows compatible paths. # function wcmd { $1 `wpath ${*:2}` } # # Functions to run explicit Python versions as well as to establish a # new default path. Automatically use wpath when executing for path names. # function py15path { export PATH=/c/python/1.5:/c/python/1.5/DLLs:$ORIGPATH } function py15 { PATH=/c/python/1.5:/c/python/1.5/DLLs:$ORIGPATH wcmd python $* } function py20path { export PATH=/c/python/2.0:/c/python/2.0/DLLs:$ORIGPATH } function py20 { PATH=/c/python/2.0:/c/python/2.0/DLLs:$ORIGPATH wcmd python $* } function py21path { export PATH=/c/python/2.1:/c/python/2.1/DLLs:$ORIGPATH } function py21 { PATH=/c/python/2.1:/c/python/2.1/DLLs:$ORIGPATH wcmd python $* } function py22path { export PATH=/c/python/2.2:/c/python/2.2/DLLs:$ORIGPATH } function py22 { PATH=/c/python/2.2:/c/python/2.2/DLLs:$ORIGPATH wcmd python $* } function py23path { export PATH=/c/python/2.3:/c/python/2.3/DLLs:$ORIGPATH } function py23 { PATH=/c/python/2.3:/c/python/2.3/DLLs:$ORIGPATH wcmd python $* } # And establish 'python' to filter through wcmd alias python='wcmd python' - - - - - - - - - - - - - - - - - - - - - - - - - -- David
- Previous message (by thread): Win32: Running python programs from a Cygwin shell
- Next message (by thread): Win32: Running python programs from a Cygwin shell
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list