Prob. Code Downloaded for Programming the Semantic Web (python code)

Bruce Whealton futurewavewebdevelopment at gmail.com
Mon Jul 28 20:57:19 EDT 2014


On Monday, July 28, 2014 11:28:40 AM UTC-4, Steven D'Aprano wrote:
> On Mon, 28 Jul 2014 03:39:48 -0700, Bruce Whealton wrote:
Stephen,
    I went to my Ubuntu box inside vmware and added a #!/usr/bin/env python2.7 to the top.  Then I made the file executable and it ran the code perfectly. 

> 
> First step is to confirm that Eclipse actually is using Python 2.7. Can 
> 
> you get it to run this code instead? Put this in a module, and then run 
> 
> it:
> 
> 
> 
> import sys
> 
> print(sys.version)
> 
> 
I had both python2.7 and python3.4.  I could be less specific with my shebang line but what the heck.  
> 
> 
> 
I then installed pydev into my eclipse environment within the Ubuntu virtual machine and it ran the program just fine.  So, I suspect the extra character was 
only an issue on Windows.  I thought I had it setup to show even hidden characters.  
Anyway, thanks so much for all the help...everyone.  It might be interesting for me to convert this to a module that runs with python 3.
Bruce 
> 
> 
> > It just
> 
> > says invalid syntax and points at the parentheses that are in the
> 
> > function definition def add(self, (subj, pred, obj)):
> 
> > So, from what you said, and others, it seems like this should have
> 
> > worked but eclipse would not run it.  I could try to load it into IDLE.
> 
> 
> 
> Whenever you have trouble with one IDE, it's good to get a second opinion 
> 
> in another IDE. They might both be buggy, but they're unlikely to both 
> 
> have the same bug.
> 
> 
> 
> Also, try to run the file directly from the shell, without an IDE. from 
> 
> the system shell (cmd.exe if using Windows, bash or equivalent for 
> 
> Linux), run:
> 
> 
> 
> python27 /path/to/yourfile.py
> 
> 
> 
> You'll obviously need to adjust the pathname, possibly even give the full 
> 
> path to the Python executable.
> 
> 
> 
> 
> 
> [...]
> 
> >> In Python 3, that functionality was dropped and is no longer allowed.
> 
> >> Now you have to use the longer form.
> 
> >>
> 
> > I'm not sure I follow what the longer method is.  Can you explain that
> 
> > more, please.
> 
> 
> 
> I referred to the parenthesised parameter version as a short cut for a 
> 
> method that takes a single argument, then manually expands that argument 
> 
> into three items. Let me show them together to make it more obvious:
> 
> 
> 
> # Unparenthesised version, with manual step.
> 
> def add(self, sub_pred_obj):
> 
>     sub, pred, obj = sub_pred_obj
> 
>     do_stuff_with(sub or pred or obj)
> 
> 
> 
> # Parenthesised shortcut.
> 
> def add(self, (sub, pred, obj)):
> 
>     do_stuff_with(sub or pred or obj)
> 
> 
> 
> Both methods take a single argument, which must be a sequence of exactly 
> 
> three values. The second version saves a single line, hence the first 
> 
> version is longer :-)
> 
> 
> 
> 
> 
> -- 
> 
> Steven




More information about the Python-list mailing list