Skip to content

Instantly share code, notes, and snippets.

@blazetopher
Last active December 15, 2015 20:29
Show Gist options
  • Save blazetopher/5319320 to your computer and use it in GitHub Desktop.
Save blazetopher/5319320 to your computer and use it in GitHub Desktop.
Read OOI Notebook Walkthrough.md below for instructions. NOTE: There are unresolved issues with gevent. Also, this has not been tested with any kind of service/deploy support in coi-services.
# Fix the ipython path
project_path = '/Users/cmueller/Development/OOI/Dev/code/coi-services'
virtualenv_path = '/Users/cmueller/Development/OOI/Dev/virtenvs/clean27'
import IPython
IPython.sys.path = ['',
'{0}/eggs/gevent-0.13.7-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/coverage-3.5.2-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}'.format(project_path),
'{0}/eggs/objgraph-1.7.2-py2.7.egg'.format(project_path),
'{0}/eggs/pyproj-1.9.3-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/APScheduler-2.1.0-py2.7.egg'.format(project_path),
'{0}/eggs/xlrd-0.8.0-py2.7.egg'.format(project_path),
'{0}/eggs/ntplib-0.3.0-py2.7.egg'.format(project_path),
'{0}/eggs/pyparsing-1.5.6-py2.7.egg'.format(project_path),
'{0}/eggs/elasticpy-0.11-py2.7.egg'.format(project_path),
'{0}/eggs/netCDF4-1.0.4-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/Pydap-3.1.RC1-py2.7.egg'.format(project_path),
'/Users/cmueller/Development/OOI/Dev/virtenvs/clean27/lib/python2.7/site-packages/setuptools-0.6c12dev_r88846-py2.7.egg'.format(project_path),
'{0}/eggs/matplotlib-1.1.1-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/pygsw-0.0.6-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/seawater-2.0.1-py2.7.egg'.format(project_path),
'{0}/eggs/requests-0.13.5-py2.7.egg'.format(project_path),
'{0}/eggs/WebTest-1.4.0-py2.7.egg'.format(project_path),
'{0}/eggs/python_dateutil-1.5-py2.7.egg'.format(project_path),
'{0}/eggs/Flask-0.9-py2.7.egg'.format(project_path),
'{0}/extern/pyon'.format(project_path),
'{0}/extern/ion-functions'.format(project_path),
'{0}/extern/coverage-model'.format(project_path),
'{0}/eggs/pyzmq-2.2.0-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/greenlet-0.4.0-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/simplejson-2.1.6-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/PasteDeploy-1.5.0-py2.7.egg'.format(project_path),
'{0}/eggs/PasteScript-1.7.5-py2.7.egg'.format(project_path),
'{0}/eggs/Paste-1.7.5.1-py2.7.egg'.format(project_path),
'{0}/eggs/Genshi-0.7-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/httplib2-0.8-py2.7.egg'.format(project_path),
'{0}/eggs/numpy-1.6.2-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/WebOb-1.2.3-py2.7.egg'.format(project_path),
'{0}/eggs/Jinja2-2.6-py2.7.egg'.format(project_path),
'{0}/eggs/Werkzeug-0.8.3-py2.7.egg'.format(project_path),
'{0}/eggs/lxml-2.3.4-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/python_gevent_profiler-0.2-py2.7.egg'.format(project_path),
'{0}/eggs/ndg_xacml-0.5.1-py2.7.egg'.format(project_path),
'{0}/eggs/mock-0.8.0-py2.7.egg'.format(project_path),
'{0}/eggs/readline-6.2.1-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/antlr_python_runtime-3.1.3-py2.7.egg'.format(project_path),
'{0}/eggs/ipython-0.13-py2.7.egg'.format(project_path),
'{0}/eggs/nose-1.1.2-py2.7.egg'.format(project_path),
'{0}/eggs/M2Crypto-0.21.1_pl1-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/python_daemon-1.6-py2.7.egg'.format(project_path),
'{0}/eggs/CouchDB-0.8-py2.7.egg'.format(project_path),
'{0}/eggs/zope.interface-4.0.5-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/gevent_zeromq-0.2.5-py2.7.egg'.format(project_path),
'{0}/eggs/pika-0.9.5-py2.7.egg'.format(project_path),
'{0}/eggs/setproctitle-1.1.2-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/msgpack_python-0.1.13-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/utilities-2013.03.29-py2.7.egg'.format(project_path),
'{0}/eggs/geomag-0.9-py2.7.egg'.format(project_path),
'{0}/eggs/numexpr-2.0.1-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/networkx-1.7-py2.7.egg'.format(project_path),
'{0}/eggs/pydot-1.0.28-py2.7.egg'.format(project_path),
'{0}/eggs/gsw-3.0.1a1-py2.7.egg'.format(project_path),
'{0}/eggs/pidantic-0.1.1-py2.7.egg'.format(project_path),
'{0}/eggs/Rtree-0.7.0-py2.7.egg'.format(project_path),
'{0}/eggs/h5py-2.1.1a2-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/lockfile-0.9.1-py2.7.egg'.format(project_path),
'{0}/eggs/graypy-0.2.8-py2.7.egg'.format(project_path),
'{0}/eggs/PyYAML-3.10-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/SQLAlchemy-0.7.6-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/supervisor-3.0b1-py2.7.egg'.format(project_path),
'{0}/eggs/meld3-0.6.10-py2.7.egg'.format(project_path),
'{0}/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg'.format(virtualenv_path),
'{0}/lib/python2.7/site-packages/pip-1.1-py2.7.egg'.format(virtualenv_path),
'{0}/lib/python27.zip'.format(virtualenv_path),
'{0}/lib/python2.7'.format(virtualenv_path),
'{0}/lib/python2.7/plat-darwin'.format(virtualenv_path),
'{0}/lib/python2.7/plat-mac'.format(virtualenv_path),
'{0}/lib/python2.7/plat-mac/lib-scriptpackages'.format(virtualenv_path),
'{0}/lib/python2.7/lib-tk'.format(virtualenv_path),
'{0}/lib/python2.7/lib-old'.format(virtualenv_path),
'{0}/lib/python2.7/lib-dynload'.format(virtualenv_path),
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'{0}/lib/python2.7/site-packages'.format(virtualenv_path),
'{0}/eggs/ipython-0.13-py2.7.egg/IPython/extensions'.format(project_path)]
# Fix the ipython path
project_path = '/Users/cmueller/Development/OOI/Dev/code/coverage-model'
virtualenv_path = '/Users/cmueller/Development/OOI/Dev/virtenvs/cm2'
import IPython
IPython.sys.path = ['',
'{0}/eggs/gevent-0.13.7-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/coverage-3.5.2-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}'.format(project_path),
'{0}/eggs/msgpack_python-0.1.13-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/pyparsing-1.5.6-py2.7.egg'.format(project_path),
'{0}/eggs/networkx-1.7-py2.7.egg'.format(project_path),
'{0}/eggs/pydot-1.0.28-py2.7.egg'.format(project_path),
'{0}/eggs/gsw-3.0.1a1-py2.7.egg'.format(project_path),
'{0}/eggs/nose-1.1.2-py2.7.egg'.format(project_path),
'{0}/eggs/pidantic-0.1.1-py2.7.egg'.format(project_path),
'{0}/eggs/Rtree-0.7.0-py2.7.egg'.format(project_path),
'{0}/eggs/h5py-2.1.1a2-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/numexpr-2.0.1-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/netCDF4-1.0.4-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/gevent_zeromq-0.2.5-py2.7.egg'.format(project_path),
'{0}/eggs/pyzmq-2.2.0-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/extern/pyon'.format(project_path),
'{0}/eggs/greenlet-0.4.0-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/setuptools-0.6c11-py2.7.egg'.format(project_path),
'{0}/eggs/SQLAlchemy-0.7.6-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/supervisor-3.0b1-py2.7.egg'.format(project_path),
'{0}/eggs/requests-0.13.5-py2.7.egg'.format(project_path),
'{0}/eggs/lxml-2.3.4-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/python_gevent_profiler-0.2-py2.7.egg'.format(project_path),
'{0}/eggs/ndg_xacml-0.5.1-py2.7.egg'.format(project_path),
'{0}/eggs/mock-0.8.0-py2.7.egg'.format(project_path),
'{0}/eggs/readline-6.2.1-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/antlr_python_runtime-3.1.3-py2.7.egg'.format(project_path),
'{0}/eggs/ipython-0.13-py2.7.egg'.format(project_path),
'{0}/eggs/M2Crypto-0.21.1_pl1-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/python_daemon-1.6-py2.7.egg'.format(project_path),
'{0}/eggs/CouchDB-0.8-py2.7.egg'.format(project_path),
'{0}/eggs/zope.interface-4.0.5-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/httplib2-0.8-py2.7.egg'.format(project_path),
'{0}/eggs/pika-0.9.5-py2.7.egg'.format(project_path),
'{0}/eggs/setproctitle-1.1.2-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/simplejson-2.1.6-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/eggs/utilities-2012.12.12-py2.7.egg'.format(project_path),
'{0}/eggs/meld3-0.6.10-py2.7.egg'.format(project_path),
'{0}/eggs/lockfile-0.9.1-py2.7.egg'.format(project_path),
'{0}/eggs/graypy-0.2.8-py2.7.egg'.format(project_path),
'{0}/eggs/PyYAML-3.10-py2.7-macosx-10.6-intel.egg'.format(project_path),
'{0}/lib/python2.7/site-packages/setuptools-0.6c11-py2.7.egg'.format(virtualenv_path),
'{0}/lib/python2.7/site-packages/pip-1.1-py2.7.egg'.format(virtualenv_path),
'{0}/lib/python27.zip'.format(virtualenv_path),
'{0}/lib/python2.7'.format(virtualenv_path),
'{0}/lib/python2.7/plat-darwin'.format(virtualenv_path),
'{0}/lib/python2.7/plat-mac'.format(virtualenv_path),
'{0}/lib/python2.7/plat-mac/lib-scriptpackages'.format(virtualenv_path),
'{0}/lib/python2.7/lib-tk'.format(virtualenv_path),
'{0}/lib/python2.7/lib-old'.format(virtualenv_path),
'{0}/lib/python2.7/lib-dynload'.format(virtualenv_path),
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7',
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-darwin',
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/lib-tk',
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac',
'/usr/local/Cellar/python/2.7.3/Frameworks/Python.framework/Versions/2.7/lib/python2.7/plat-mac/lib-scriptpackages',
'{0}/lib/python2.7/site-packages'.format(virtualenv_path),
'{0}/eggs/ipython-0.13-py2.7.egg/IPython/extensions'.format(project_path)]
# Configure logging
from pyon.core import log as logutil
if not logutil.is_logging_configured():
logutil.configure_logging(logutil.DEFAULT_LOGGING_PATHS)
project_path = '/Users/cmueller/Development/OOI/Dev/code/ion-functions'
import sys
sys.path.extend([
'{0}'.format(project_path),
'{0}/eggs/scipy-0.11.0-py2.7-macosx-10.7-intel.egg'.format(project_path),
'{0}/eggs/geomag-0.9-py2.7.egg'.format(project_path),
'{0}/eggs/pygsw-0.0.10-py2.7-macosx-10.7-intel.egg'.format(project_path),
'{0}/eggs/nose-1.1.2-py2.7.egg'.format(project_path),
'{0}/eggs/numexpr-2.1-py2.7-macosx-10.7-intel.egg'.format(project_path),
'{0}/eggs/readline-6.2.4.1-py2.7-macosx-10.7-intel.egg'.format(project_path),
'{0}/eggs/ipython-0.13-py2.7.egg'.format(project_path),
])
# Configure logging
from pyon.core import log as logutil
if not logutil.is_logging_configured():
logutil.configure_logging(logutil.DEFAULT_LOGGING_PATHS)
#!/bin/bash
NOTEBOOKS_DIR=notebooks
echo "Soft linking ipython & pyzmq into virtualenv"
ln -s $PWD/eggs/ipython-0.13-py2.7.egg/IPython $VIRTUAL_ENV/lib/python2.7/site-packages/IPython
ln -s $PWD/eggs/ipython-0.13-py2.7.egg/EGG-INFO $VIRTUAL_ENV/lib/python2.7/site-packages/ipython-0.13-py2.7.egg-info
ln -s $PWD/eggs/pyzmq-2.2.0-py2.7-macosx-10.6-intel.egg/zmq $VIRTUAL_ENV/lib/python2.7/site-packages/zmq
ln -s $PWD/eggs/pyzmq-2.2.0-py2.7-macosx-10.6-intel.egg/EGG-INFO $VIRTUAL_ENV/lib/python2.7/site-packages/pyzmq-2.2.0-py2.7.egg-info
echo "Launching ipython notebook..."
if [ ! -d "$NOTEBOOKS_DIR" ]; then
mkdir $NOTEBOOKS_DIR
fi
bin/ipython notebook --notebook-dir=$NOTEBOOKS_DIR --profile=covmdlnotebook
echo "Removing soft links"
rm $VIRTUAL_ENV/lib/python2.7/site-packages/IPython
rm $VIRTUAL_ENV/lib/python2.7/site-packages/ipython-0.13-py2.7.egg-info
rm $VIRTUAL_ENV/lib/python2.7/site-packages/zmq
rm $VIRTUAL_ENV/lib/python2.7/site-packages/pyzmq-2.2.0-py2.7.egg-info

###1. Install tornado dependency

pip install tornado

###2. Create a new ipython profile
The name of the profile should be unique to the project

bin/ipython profile create covmdlnotebook

###3. Edit 00.py

  1. Select the appropriate 00_*.py script for your project
  2. Open the selected 00_*.py script and replace the project_path and virtualenv_path with the appropriate paths for your environment.
  3. Save the modified 00_*.py script to the startup directory of the ipython profile, located at: ~/.ipython/profile_covmdlnotebook/startup/

###4. Edit notebook Open the notebook script and set the PROFILE_NAME to the name used in step 2

###5. Run notebook Note: You may need to set the executable bit on the notebook file
Run the notebook by executing:

notebook

The ipython notebook dashboard should open automatically.

NOTE: By default, notebook files (.ipynb) are saved in ./notebooks. The directory will be created the first time you run notebook if it does not exist. You can modify the location by editing the NOTEBOOKS_DIR variable in the notebook script.

See this page for help with ipython notebook

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment