Hi Brian,<br><br>I ran into some more issues installing IPython on a different machine. This machine runs Python 2.4 and it seems that some of the IPython code is now using the &#39;with&#39; statement, which I don&#39;t think is included in Python 2.4. Is 2.4 no longer supported?<br>
<br>The trace from my setup.py install attempt has been copied at the end of the message.<br><br>Thanks,<br>~Doug<br><br>Note: I&#39;d already executed a python setup.py build without error.<br><br>&nbsp;python setup.py install --prefix=$HOME/local<br>
============================================================================<br>BUILDING IPYTHON<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; python: 2.4.4 (#1, Jul 29 2007, 19:42:10)&nbsp; [GCC 4.1.1<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (Gentoo 4.1.1-r3)]<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; platform: linux2<br>
<br>OPTIONAL DEPENDENCIES<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Zope.Interface: yes<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Twisted: 2.5.0<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Foolscap: 0.2.8<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; OpenSSL: 0.6<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; sphinx: 0.3<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pygments: 0.10<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nose: 0.10.3<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pexpect: 0.999<br>running install<br>running build<br>running build_py<br>running build_scripts<br>running install_lib<br>byte-compiling /home/djones/local/lib/python2.4/site-packages/IPython/config/config.py to config.pyc<br>
&nbsp; File &quot;/home/djones/local/lib/python2.4/site-packages/IPython/config/config.py&quot;, line 49<br>&nbsp;&nbsp;&nbsp; with raw(self):<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^<br>SyntaxError: invalid syntax<br>byte-compiling /home/djones/local/lib/python2.4/site-packages/IPython/kernel/contexts.py to contexts.pyc<br>
&nbsp; File &quot;/home/djones/local/lib/python2.4/site-packages/IPython/kernel/contexts.py&quot;, line 171<br>&nbsp;&nbsp;&nbsp; with parallel as pr:<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ^<br>SyntaxError: invalid syntax<br>running install_scripts<br>changing mode of /home/djones/local/bin/pycolor to 755<br>
changing mode of /home/djones/local/bin/ipengine to 755<br>changing mode of /home/djones/local/bin/ipcontroller to 755<br>changing mode of /home/djones/local/bin/ipcluster to 755<br>changing mode of /home/djones/local/bin/ipython to 755<br>
changing mode of /home/djones/local/bin/irunner to 755<br>running install_data<br>Traceback (most recent call last):<br>&nbsp; File &quot;setup.py&quot;, line 174, in ?<br>&nbsp;&nbsp;&nbsp; setup(**setup_args)<br>&nbsp; File &quot;/usr/lib/python2.4/distutils/core.py&quot;, line 149, in setup<br>
&nbsp;&nbsp;&nbsp; dist.run_commands()<br>&nbsp; File &quot;/usr/lib/python2.4/distutils/dist.py&quot;, line 946, in run_commands<br>&nbsp;&nbsp;&nbsp; self.run_command(cmd)<br>&nbsp; File &quot;/usr/lib/python2.4/distutils/dist.py&quot;, line 966, in run_command<br>
&nbsp;&nbsp;&nbsp; cmd_obj.run()<br>&nbsp; File &quot;/usr/lib/python2.4/distutils/command/install.py&quot;, line 510, in run<br>&nbsp;&nbsp;&nbsp; self.run_command(cmd_name)<br>&nbsp; File &quot;/usr/lib/python2.4/distutils/cmd.py&quot;, line 333, in run_command<br>
&nbsp;&nbsp;&nbsp; self.distribution.run_command(command)<br>&nbsp; File &quot;/usr/lib/python2.4/distutils/dist.py&quot;, line 966, in run_command<br>&nbsp;&nbsp;&nbsp; cmd_obj.run()<br>&nbsp; File &quot;/home/djones/ipython_src/ipython/setupext/install_data_ext.py&quot;, line 75, in run<br>
&nbsp;&nbsp;&nbsp; (out, _) = self.copy_file(f, dir)<br>&nbsp; File &quot;/usr/lib/python2.4/distutils/cmd.py&quot;, line 376, in copy_file<br>&nbsp;&nbsp;&nbsp; dry_run=self.dry_run)<br>&nbsp; File &quot;/usr/lib/python2.4/distutils/file_util.py&quot;, line 117, in copy_file<br>
&nbsp;&nbsp;&nbsp; if not os.path.isfile(src):<br>&nbsp; File &quot;/usr/lib/python2.4/posixpath.py&quot;, line 208, in isfile<br>&nbsp;&nbsp;&nbsp; st = os.stat(path)<br>TypeError: coercing to Unicode: need string or buffer, list found<br><br><br><br><br>
<div class="gmail_quote">On Wed, Jun 11, 2008 at 4:49 PM, Brian Granger &lt;<a href="http://ellisonbg.net">ellisonbg.net</a>@<a href="http://gmail.com">gmail.com</a>&gt; wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div class="Ih2E3d">&gt; Connecting with the MultiEngineClient is working now. It seems that it was<br>
&gt; simply from passing the wrong arguments to the constructor that I was having<br>
&gt; problems before.<br>
&gt;<br>
&gt; All in all, I think the furl files are an improvement and the addition of<br>
&gt; secure connections is certainly appreciated.<br>
<br>
</div>Thanks for the feedback. &nbsp;We _really_ needed to address the security<br>
issue and I think Foolscap and the furls really work well. &nbsp;They give<br>
a high level of security, but make it pretty easy to setup.<br>
<font color="#888888"><br>
Brian<br>
</font><div><div></div><div class="Wj3C7c"><br>
&gt; Thanks,<br>
&gt; ~doug<br>
&gt;<br>
&gt; On Tue, Jun 10, 2008 at 4:22 PM, Brian Granger &lt;<a href="http://ellisonbg.net" target="_blank">ellisonbg.net</a>@<a href="http://gmail.com" target="_blank">gmail.com</a>&gt;<br>
&gt; wrote:<br>
&gt;&gt;<br>
&gt;&gt; &gt; Thanks for the information. I thought I had used the configuration<br>
&gt;&gt; &gt; creation<br>
&gt;&gt; &gt; command to create .furl files in my home directory. Right now, i&#39;m using<br>
&gt;&gt; &gt; mpiexec to start the engines, so perhaps this is creating some sort of<br>
&gt;&gt; &gt; issue<br>
&gt;&gt; &gt; with the shell environment the engines are created in. I&#39;ll double check<br>
&gt;&gt; &gt; and<br>
&gt;&gt; &gt; let you know if I continue to have problems.<br>
&gt;&gt;<br>
&gt;&gt; Hmm, if you are editing the ipython config files to set the locations<br>
&gt;&gt; of the furl files, that should work. &nbsp;Maybe the only thing you need to<br>
&gt;&gt; change is how you are creating the MultiEngineClient.<br>
&gt;&gt;<br>
&gt;&gt; It no longer takes the (ip, port) tuple. &nbsp;It now takes the name of the<br>
&gt;&gt; furl file, or if empty it will use the location given in the config<br>
&gt;&gt; files.<br>
&gt;&gt;<br>
&gt;&gt; Keep me posted.<br>
&gt;&gt;<br>
&gt;&gt; Brian<br>
&gt;&gt;<br>
&gt;&gt; &gt; ~doug<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt; On Tue, Jun 10, 2008 at 3:55 PM, Brian Granger &lt;<a href="http://ellisonbg.net" target="_blank">ellisonbg.net</a>@<a href="http://gmail.com" target="_blank">gmail.com</a>&gt;<br>
&gt;&gt; &gt; wrote:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; This is not a unicode error, but rather, our API for starting the<br>
&gt;&gt; &gt;&gt; client has changed due to the new security stuff. &nbsp;This is the stuff<br>
&gt;&gt; &gt;&gt; that I am working on documenting as we speak.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Here is a minimal description:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 1) When the controller now starts, it creates a set of files (in your<br>
&gt;&gt; &gt;&gt; .ipython directory by default)<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; ipcontroller-tc.furl<br>
&gt;&gt; &gt;&gt; ipcontroller-mec.furl<br>
&gt;&gt; &gt;&gt; ipcontroller-engine.furl<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 2) &nbsp;These files contain a secure URL that 1) tells the engine and<br>
&gt;&gt; &gt;&gt; clients where the controller is running and 2) gives the engine and<br>
&gt;&gt; &gt;&gt; clients authority to connect to the controller in a secure manner.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 3) To use these files, they have to be available to the client and<br>
&gt;&gt; &gt;&gt; engines when they start. &nbsp;The easiest way of handling this is to<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; a) copy ipcontroller-engine.furl to the .ipython directory on the<br>
&gt;&gt; &gt;&gt; machine(s) where the engines will run<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; b) copy ipcontroller-tc and -mec to the .ipython dir of the machine<br>
&gt;&gt; &gt;&gt; where the clients will run.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Then everything will &quot;just work&quot;. &nbsp;By this, I mean that you can create<br>
&gt;&gt; &gt;&gt; the clients with no arguments:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; mec = client.MultiEngineClient()<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; If you have put the .furl files in different locations you can do:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; mec =<br>
&gt;&gt; &gt;&gt; client.MultiEngineClient(&#39;/Users/me/furlfiles/ipcontroller-mec.furl&#39;)<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; In all of this, you can think of the furl files as being keys (just<br>
&gt;&gt; &gt;&gt; like a house key) that grants an entity access to a particular<br>
&gt;&gt; &gt;&gt; resource. &nbsp;The controller creates the keys and the engines/client must<br>
&gt;&gt; &gt;&gt; present/use them to use the capabilities of the controller.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; See if you can use this to get things working. &nbsp;The big benefit of<br>
&gt;&gt; &gt;&gt; using all this is:<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 1) Users don&#39;t have to track what ip/port the controller is running on.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 2) Everything is secure by default - authentication + encryption (if<br>
&gt;&gt; &gt;&gt; you have pyOpenSSL installed<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; 3) The controller now uses random port numbers, making it even more<br>
&gt;&gt; &gt;&gt; difficult for hostiles to discover.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Let me know if you have any more problems getting this working. &nbsp;We<br>
&gt;&gt; &gt;&gt; would love feedback if you have ideas of how things could be made<br>
&gt;&gt; &gt;&gt; easier.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Also, check out the new command line flags on the ipcontroller and<br>
&gt;&gt; &gt;&gt; ipengine scripts to control where the furl files are created and<br>
&gt;&gt; &gt;&gt; looked for.<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Cheers,<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; Brian<br>
&gt;&gt; &gt;&gt;<br>
&gt;&gt; &gt;&gt; On Tue, Jun 10, 2008 at 12:57 PM, Doug Jones &lt;<a href="mailto:dfj225@gmail.com">dfj225@gmail.com</a>&gt; wrote:<br>
&gt;&gt; &gt;&gt; &gt; Hi all,<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; I tried a simple test of the latest IPython branch and the<br>
&gt;&gt; &gt;&gt; &gt; MultiEngineClient. When I attempted to connect to a running cluster<br>
&gt;&gt; &gt;&gt; &gt; on<br>
&gt;&gt; &gt;&gt; &gt; my<br>
&gt;&gt; &gt;&gt; &gt; local machine, I got the following error:<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; &nbsp;mec = client.MultiEngineClient((&#39;localhost&#39;, 10105))<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; ---------------------------------------------------------------------------<br>
&gt;&gt; &gt;&gt; &gt; TypeError &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Traceback (most recent call<br>
&gt;&gt; &gt;&gt; &gt; last)<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; /home/djones/svn/basin_remote/trunk/scripts/&lt;ipython console&gt; in<br>
&gt;&gt; &gt;&gt; &gt; &lt;module&gt;()<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; /home/djones/local/lib64/python2.5/site-packages/IPython/kernel/client.pyc<br>
&gt;&gt; &gt;&gt; &gt; in get_multiengine_client(furl_or_file)<br>
&gt;&gt; &gt;&gt; &gt; &nbsp; &nbsp; &nbsp;67 &nbsp; &nbsp; &quot;&quot;&quot;<br>
&gt;&gt; &gt;&gt; &gt; &nbsp; &nbsp; &nbsp;68 &nbsp; &nbsp; client =<br>
&gt;&gt; &gt;&gt; &gt; blockingCallFromThread(_client_tub.get_multiengine_client,<br>
&gt;&gt; &gt;&gt; &gt; ---&gt; 69 &nbsp; &nbsp; &nbsp; &nbsp; furl_or_file)<br>
&gt;&gt; &gt;&gt; &gt; &nbsp; &nbsp; &nbsp;70 &nbsp; &nbsp; return client.adapt_to_blocking_client()<br>
&gt;&gt; &gt;&gt; &gt; &nbsp; &nbsp; &nbsp;71<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; /home/djones/local/lib64/python2.5/site-packages/IPython/kernel/twistedutil.pyc<br>
&gt;&gt; &gt;&gt; &gt; in blockingCallFromThread(f, *a, **kw)<br>
&gt;&gt; &gt;&gt; &gt; &nbsp; &nbsp; &nbsp;97 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; result.raiseException()<br>
&gt;&gt; &gt;&gt; &gt; &nbsp; &nbsp; &nbsp;98 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; except Exception, e:<br>
&gt;&gt; &gt;&gt; &gt; ---&gt; 99 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; raise e<br>
&gt;&gt; &gt;&gt; &gt; &nbsp; &nbsp; 100 &nbsp; &nbsp; &nbsp; &nbsp; return result<br>
&gt;&gt; &gt;&gt; &gt; &nbsp; &nbsp; 101<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; TypeError: coercing to Unicode: need string or buffer, tuple found<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; Thanks,<br>
&gt;&gt; &gt;&gt; &gt; ~Doug<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt; _______________________________________________<br>
&gt;&gt; &gt;&gt; &gt; IPython-dev mailing list<br>
&gt;&gt; &gt;&gt; &gt; <a href="mailto:IPython-dev@scipy.org">IPython-dev@scipy.org</a><br>
&gt;&gt; &gt;&gt; &gt; <a href="http://lists.ipython.scipy.org/mailman/listinfo/ipython-dev" target="_blank">http://lists.ipython.scipy.org/mailman/listinfo/ipython-dev</a><br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;&gt; &gt;<br>
&gt;<br>
&gt;<br>
</div></div></blockquote></div><br>