<div class="gmail_quote">On Wed, Nov 30, 2011 at 12:42, Chris Kees <span dir="ltr"><<a href="mailto:cekees@gmail.com">cekees@gmail.com</a>></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 "somethings wrong with your profile in path_to_profile". 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'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 "/Users/minrk/dev/ip/mine/IPython/config/application.py", line 440, in load_config_file</div><div class="gmail_quote">

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

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

  File "/Users/minrk/dev/ip/mine/IPython/utils/py3compat.py", line 175, in execfile</div><div class="gmail_quote">    __builtin__.execfile(filename, *where)</div><div class="gmail_quote">  File "/Users/minrk/.ipython/profile_default/ipython_config.py", line 4, in <module></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">---> 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't think it'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'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 'check your config files in ...' bit to that error message.  I'll push straight away if Fernando</div>

<div class="gmail_quote">thinks that'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">---> 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"><<a href="mailto:benjaminrk@gmail.com" target="_blank">benjaminrk@gmail.com</a>></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"><<a href="mailto:fperez.net@gmail.com" target="_blank">fperez.net@gmail.com</a>></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 <<a href="mailto:benjaminrk@gmail.com" target="_blank">benjaminrk@gmail.com</a>> wrote:<br>
><br>
> EPD's default IPython profile is not a no-op - it does exactly one thing:<br>
> load kernmagic.<br>
> 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'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's default profile is only written if the file didn'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>