<div class="gmail_quote">On Wed, Nov 30, 2011 at 12:42, Chris Kees <span dir="ltr">&lt;<a href="mailto:cekees@gmail.com">cekees@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">

Is there a way for ipython to throw an exception or warning with &quot;somethings wrong with your profile in path_to_profile&quot;. I had this problem too. It took me a while to figure out where the import statement was.  Mine probably originated with EPD as well, but I&#39;ve messed around with my profile several times working on the mpi profile and can imagine errors in profiles will happen.</blockquote>

<div><br></div>*Errors* in profiles do get special treatment.  Add 1/0 in a config file, and you get:</div><div class="gmail_quote"><br></div><div class="gmail_quote"><div class="gmail_quote">[TerminalIPythonApp] Exception while loading config file /Users/minrk/.ipython/profile_default/ipython_config.py</div>

<div class="gmail_quote">Traceback (most recent call last):</div><div class="gmail_quote">  File &quot;/Users/minrk/dev/ip/mine/IPython/config/application.py&quot;, line 440, in load_config_file</div><div class="gmail_quote">

    config = loader.load_config()</div><div class="gmail_quote">  File &quot;/Users/minrk/dev/ip/mine/IPython/config/loader.py&quot;, line 268, in load_config</div><div class="gmail_quote">    self._read_file_as_dict()</div>

<div class="gmail_quote">  File &quot;/Users/minrk/dev/ip/mine/IPython/config/loader.py&quot;, line 321, in _read_file_as_dict</div><div class="gmail_quote">    py3compat.execfile(conf_filename, namespace)</div><div class="gmail_quote">

  File &quot;/Users/minrk/dev/ip/mine/IPython/utils/py3compat.py&quot;, line 175, in execfile</div><div class="gmail_quote">    __builtin__.execfile(filename, *where)</div><div class="gmail_quote">  File &quot;/Users/minrk/.ipython/profile_default/ipython_config.py&quot;, line 4, in &lt;module&gt;</div>

<div class="gmail_quote">    1/0</div><div class="gmail_quote">ZeroDivisionError: integer division or modulo by zero</div><div class="gmail_quote"><br></div><div class="gmail_quote">And the missing extension error is already specially handled:</div>

<div class="gmail_quote"><div class="gmail_quote">[TerminalIPythonApp] Error in loading extension: dne</div><div class="gmail_quote">---------------------------------------------------------------------------</div><div class="gmail_quote">

ImportError                               Traceback (most recent call last)</div><div class="gmail_quote">/Users/minrk/dev/ip/mine/IPython/core/extensions.pyc in load_extension(self, module_str)</div><div class="gmail_quote">

     85         if module_str not in sys.modules:</div><div class="gmail_quote">     86             with prepended_to_syspath(self.ipython_extension_dir):</div><div class="gmail_quote">---&gt; 87                 __import__(module_str)</div>

<div class="gmail_quote">     88         mod = sys.modules[module_str]</div><div class="gmail_quote">     89         return self._call_load_ipython_extension(mod)</div><div class="gmail_quote"><br></div><div class="gmail_quote">

ImportError: No module named dne</div><div class="gmail_quote"><br></div><div class="gmail_quote">The only way to load an extension is by asking for it in a config file, so we have perhaps inappropriately assumed that</div>

<div class="gmail_quote">it is obvious where the error resides.  Under normal circumstances, I don&#39;t think it&#39;s possible for this error to occur without the *user* writing</div><div class="gmail_quote">the bad code.  The fact that EPD writes its own default config file that won&#39;t normally</div>

<div class="gmail_quote">work outside EPD means that users are facing this issue without ever touching or even thinking about IPython config.</div><div class="gmail_quote"><br></div><div class="gmail_quote">I can easily add a &#39;check your config files in ...&#39; bit to that error message.  I&#39;ll push straight away if Fernando</div>

<div class="gmail_quote">thinks that&#39;s a good idea.  What it looks like right now:</div><div class="gmail_quote"><br></div><div class="gmail_quote"><div class="gmail_quote">[TerminalIPythonApp] Error in loading extension: dne</div>

<div class="gmail_quote">Check your config files in /Users/minrk/.ipython/profile_default</div><div class="gmail_quote">---------------------------------------------------------------------------</div><div class="gmail_quote">

ImportError                               Traceback (most recent call last)</div><div class="gmail_quote">/Users/minrk/dev/ip/mine/IPython/core/extensions.pyc in load_extension(self, module_str)</div><div class="gmail_quote">

     85         if module_str not in sys.modules:</div><div class="gmail_quote">     86             with prepended_to_syspath(self.ipython_extension_dir):</div><div class="gmail_quote">---&gt; 87                 __import__(module_str)</div>

<div class="gmail_quote">     88         mod = sys.modules[module_str]</div><div class="gmail_quote">     89         return self._call_load_ipython_extension(mod)</div><div class="gmail_quote"><br></div><div class="gmail_quote">

ImportError: No module named dne</div><div><br></div></div><div><br></div><div>-MinRK</div></div><br><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><div>


<br></div><div><font color="#888888">Chris   <br><br></font><div class="gmail_quote"><div><div></div><div class="h5">On Wed, Nov 30, 2011 at 2:17 PM, MinRK <span dir="ltr">&lt;<a href="mailto:benjaminrk@gmail.com" target="_blank">benjaminrk@gmail.com</a>&gt;</span> wrote:<br>

</div></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div><div></div><div class="h5">
<br><br><div class="gmail_quote"><div>On Wed, Nov 30, 2011 at 12:01, Fernando Perez <span dir="ltr">&lt;<a href="mailto:fperez.net@gmail.com" target="_blank">fperez.net@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




<div>On Wed, Nov 30, 2011 at 11:58 AM, MinRK &lt;<a href="mailto:benjaminrk@gmail.com" target="_blank">benjaminrk@gmail.com</a>&gt; wrote:<br>
&gt;<br>
&gt; EPD&#39;s default IPython profile is not a no-op - it does exactly one thing:<br>
&gt; load kernmagic.<br>
&gt; This came up on IRC a few weeks ago, for a completely baffled user.<br>
<br>
</div>Ah, good to know.  It means that when users from epd update to any of<br>
our versions, they&#39;re going to have this problem.  Mmh...<br></blockquote><div><br></div></div><div>Should only be *former* users of EPD, who also never edited their default profile.  kernmagic will still be available within EPD,</div>




<div>and EPD&#39;s default profile is only written if the file didn&#39;t exist before, so if they had a config file prior to firstrun in EPD, they would</div><div>still not be affected.</div><span><font color="#888888"><div>


<br></div><div>-MinRK</div>

</font></span></div>
<br></div></div><div class="im">_______________________________________________<br>
IPython-dev mailing list<br>
<a href="mailto:IPython-dev@scipy.org" target="_blank">IPython-dev@scipy.org</a><br>
<a href="http://mail.scipy.org/mailman/listinfo/ipython-dev" target="_blank">http://mail.scipy.org/mailman/listinfo/ipython-dev</a><br>
<br></div></blockquote></div><br></div>
</blockquote></div><br>