title: How to refresh a Python import in a Jupyter Notebook cell?
body: <p>I have two files:</p>
  <p>MyModule.py
  MyNotebook.ipynb</p>
  <p>I am using Jupyter Notebook, latest, and Python, latest. I have two code cells in my Notebook.</p>
  <p><strong>Cell #1</strong></p>
  <pre><code>import some stuff
  Run some code
  (Keep everything in the environment takes about five minutes to run this cell).
  </code></pre>
  <p><strong>Cell #2</strong></p>
  <pre><code>import MyModule
  Execute code from MyModule
  </code></pre>
  <p>I would like to make code changes in MyModule.py and rerun <strong>Cell #2</strong> but without restarting the kernel (<strong>Cell #1</strong> did a fair amount of work which I don't want to rerun each time).
  If I simply run the second cell, those changes made to MyModule.py do not propagate through. I did some digging, and I tried using importlib.reload. The actual code for <strong>Cell #2</strong> :</p>
  <pre><code>from Nash.IOEngineNash import *
  import importlib
  importlib.reload(Nash.IOEngineNash)
  </code></pre>
  <p>Unfortunately, this isn't quite working. How can I push those changes in MyModule.py (or Nash/IOEngineNash.py in actual fact) into my Notebook without restarting the kernel and running from scratch?</p>