The problem likely is as intimated by the error message that your python interpreter not called &quot;/usr/local/bin/python3.1&quot; but I&#39;d offhand guess, probably &quot;/usr/local/bin/python&quot;.  (Indeed, you run the interpreter yourself as &quot;python&quot; not &quot;python3.1&quot; so you should not be using &quot;python3.1&quot; in your script header.)<br>
<br>To check, try:<br><br>John-Wilkinsons-iMac:~ wilkinson$ which python<br><br>Assuming you have the &quot;which&quot; command this will tell you which version of python is used then you do e.g. &quot;python hello.py.&quot;  Then change the hash-bang (#!) header in your script to match the location you found.  (If you dont have &quot;which&quot;, you can also try &quot;whereis&quot; or &quot;env&quot; or &quot;type -a&quot;.)<br>
<br>Note, some people use the following hash-bang header in preference of a hard coded path as I&#39;ve suggested above, as follows:<br><br>#!/usr/bin/env python<br><br>/usr/bin/env goes off and looks up the appropriate path for (in this case) the &quot;python&quot; interpreter, then passes control to that, thereby making your script a little less dependent on a hardcoded paths present on your system.  This works provided of course that &quot;env&quot; is available and found in /usr/bin.  (Thought I&#39;d mention that in case you wanted to use that instead/try it.)<br>
<br>Disclaimer: I don&#39;t have a Mac, the above is basically general advice which should however work any Unix&#39;ish or GNU&#39;ish system, including I believe on the Mac providing Apple&#39;s not changed things that I&#39;m not aware of.<br>
<br>Hope that helps<br><br>Walter<br><br><br>