[IPython-dev] Best practices on distributing profiles and shared user systems

Matthew Turk matthewturk at gmail.com
Wed Oct 31 18:26:31 EDT 2012

Hi there,

This is somewhat related to issue 1227 (
https://github.com/ipython/ipython/issues/1227 ).  The project I work
on is mostly used on shared user systems, and we would like to start
transitioning people who use it to using the IPython notebook.  One of
the security issues is that by default the IPython notebook doesn't
have a password.  Min posted this great solution to that:


which I think generally is quite nice and useful, but where we're
stumbling is at the items in issue 1227, which are that we'd like to:

1) Not mess with the default IPython notebook command, as anyone who
uses that should know what they're doing
2) Provide an option for a notebook command to get spawned that will
be future compatible, but also provide a random (or
IPython.lib.passwd) password like what Min showed above.  We'd like to
do this so that we can encourage users to have passwords by default.

One idea I'd had was to instantiate an instance of
IPython.frontend.html.notebook.notebookapp with the password option in
the constructor, and then call initialize() and start() on it.  We
could then put this into a routine and mark that as an entry point for
setuptools.  It seems that this still allows profiles to be specified
(which override the existing config, it seems).  Is this recommended,
or is there a better idiom?

And, if this is the recommended path, what's the right way to turn on
pylab with the inline engine?  That option gets passed to IPKernelApp,
not NotebookApp.  What's the best way to "get_config" or to specify
options to pass to IPKernelApp through NotebookApp?

Thanks very much,


More information about the IPython-dev mailing list