On 15 July 2010 17:21, Jim Byrnes <jf_byr...@comcast.net> wrote: > Adam Bark wrote: > >> On 14 July 2010 17:41, Jim Byrnes<jf_byr...@comcast.net> wrote: >> >> Adam Bark wrote: >>> >>> On 14 July 2010 02:53, Jim Byrnes<jf_byr...@comcast.net> wrote: >>>> >>>> Adam Bark wrote: >>>> >>>>> >>>>> <snipped some old stuff> >>>>> >>>>> >>>>> If I use the terminal to start the program it has no problem using the >>>>> >>>>> file. There are multiple files in multiple directories so I was >>>>>> >>>>>>> looking >>>>>>>>> for >>>>>>>>> a way to just double click them and have them run. If it turns out >>>>>>>>> that >>>>>>>>> I >>>>>>>>> must make changes to or for each of the files it will be easier to >>>>>>>>> just >>>>>>>>> keep >>>>>>>>> using the terminal. I've only been using Ubuntu for a few months >>>>>>>>> so >>>>>>>>> I >>>>>>>>> was >>>>>>>>> surprised that the program could not see a file that is in the same >>>>>>>>> directory. >>>>>>>>> >>>>>>>>> Regards, Jim >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> The problem is ubuntu doesn't run the script from the directory >>>>>>>> it's >>>>>>>> in >>>>>>>> so >>>>>>>> it's looking for wxPython.jpg somewhere else. >>>>>>>> >>>>>>>> >>>>>>>> OK, I mistakenly thought that double-clicking on file in Nautilus >>>>>>>> would >>>>>>>> >>>>>>>> take care of the path info. >>>>>>> >>>>>>> In my reply above I also mentioned that I tried by dropping it on a >>>>>>> Launcher on the top panel and that the command the launcher uses is >>>>>>> usr/bin/python2.6. Is there a way that the command can be changed so >>>>>>> that >>>>>>> it will look in the same directory the python script is in for any >>>>>>> file >>>>>>> it >>>>>>> needs? >>>>>>> >>>>>>> Thanks, Jim >>>>>>> >>>>>>> >>>>>>> >>>>>> Not sure if you got my previous email but you could try writing the >>>>>> bash >>>>>> script I posted (with the $1 line to get the path) and setting that as >>>>>> your >>>>>> launcher, I think it should work. >>>>>> >>>>>> Let me know if you didn't get it or it doesn't work. >>>>>> >>>>>> HTH, >>>>>> Adam. >>>>>> >>>>>> >>>>>> I got it, got sidetracked and then forgot to look at it again. >>>>>> Thanks >>>>>> >>>>> for >>>>> reminding me. Your idea works, but with one little downside. The >>>>> directories I am working with are chapters in a book. So as I move >>>>> from >>>>> chapter to chapter I will need to change the bash script, but this >>>>> seems >>>>> to >>>>> be less typing than using the terminal. >>>>> >>>>> >>>>> Thanks, Jim >>>>> >>>>> >>>>> Ok cool, glad it works. It might be possible to get the path so you >>>> don't >>>> have to set it each time, try this: >>>> >>>> #!/bin/bash >>>> IFS="/" >>>> path=($1) >>>> cd $(path[0:#path[*]]) >>>> python $1 >>>> >>>> >>>> # Warning, I'm not exactly a competent bash programmer so this may not >>>> work >>>> :-p >>>> >>>> Let me know if you need a hand to fix it, >>>> >>>> HTH, >>>> Adam. >>>> >>>> >>>> I tried the new bash code but when I dropped a file on the launcher it >>> just >>> flashed an gave no output. So I tried running the bash script >>> (name=runpython) in a terminal and got this error: >>> >>> /home/jfb/runpython: line 4: path[0:#path[*]]: command not found >>> Python 2.6.5 (r265:79063, Apr 16 2010, 13:57:41) >>> [GCC 4.4.3] on linux2 >>> Type "help", "copyright", "credits" or "license" for more information. >>> >>>> >>>>>> >>> I know even less about bash than you do, so I don't where to start to >>> debug >>> this. >>> >>> >>> Thanks, Jim >>> >>> Ok then, this time it's tested and not just improvised, here we go: >>> >> >> #!/bin/bash >> >> script=$1 # Full path for calling the script later >> orig_IFS=$IFS # This is to reset IFS so that "script" is correct >> (otherwise >> has spaces instead of /) >> IFS="/" >> path=( $1 ) >> IFS=$orig_IFS >> last_ind=${#pa...@]} # Works out the length of path >> let "last_ind -= 1" # Sets last_ind to index of script name >> len_path=${pa...@]:0:last_ind} # Gets the path without the script name >> let "len_path=${#len_path[0]} + 1" # This gives the length of the script >> string upto just before the last / >> cd ${scri...@]:0:len_path} # cds to the path >> python script >> >> >> As pretty much my first non-trivial bash script it's probably horrible but >> it seems to work. >> >> HTH, >> Adam. >> >> > There must be something different in our setups because it did not work for > me. If I run it from a terminal I get: > > j...@jfb-ubuntu64:~$ /home/jfb/runpython_test bitmap_button.py > /home/jfb/runpython_test: line 12: cd: b: No such file or directory > python: can't open file 'script': [Errno 2] No such file or directory > j...@jfb-ubuntu64:~$ > > Thanks Jim > > Oh cock, I missed a $ sign it should be "python $script". Seems to complain about the path as well though, not sure about that one, I'll get back to you later.
Adam.
_______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor