diff --git a/README.md b/README.md index 2ca9c9e9..abb5d7b1 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Basic principles: ## Dependencies -JupyterHub requires [IPython](https://ipython.org/install.html) >= 3.0 (current master) and [Python](https://www.python.org/downloads/) >= 3.3. +JupyterHub itself requires [Python](https://www.python.org/downloads/) ≥ 3.3. To run the single-user servers (which may be on the same system as the Hub or not), [Jupyter Notebook](https://jupyter.readthedocs.org/en/latest/install.html) ≥ 4 is required. Install [nodejs/npm](https://www.npmjs.com/), which is available from your package manager. For example, install on Linux (Debian/Ubuntu) using: @@ -50,14 +50,15 @@ Notes on the `pip` command used in the installation directions below: ## Installation -JupyterHub can be installed with pip: +JupyterHub can be installed with pip, and the proxy with npm: + npm install -g configurable-http-proxy pip3 install jupyterhub If you plan to run notebook servers locally, you may also need to install the Jupyter ~~IPython~~ notebook: - pip3 install notebook + pip3 install --upgrade notebook ### Development install diff --git a/scripts/jupyterhub-singleuser b/scripts/jupyterhub-singleuser old mode 100755 new mode 100644 index 21cc0ba2..11c60f5a --- a/scripts/jupyterhub-singleuser +++ b/scripts/jupyterhub-singleuser @@ -17,34 +17,22 @@ from jinja2 import ChoiceLoader, FunctionLoader from tornado import ioloop from tornado.web import HTTPError +try: + import notebook +except ImportError: + raise ImportError("JupyterHub single-user server requires notebook >= 4.0") -from IPython.utils.traitlets import ( +from traitlets import ( Integer, Unicode, CUnicode, ) -try: - import notebook - # 4.x -except ImportError: - from IPython.html.notebookapp import NotebookApp, aliases as notebook_aliases - from IPython.html.auth.login import LoginHandler - from IPython.html.auth.logout import LogoutHandler +from notebook.notebookapp import NotebookApp, aliases as notebook_aliases +from notebook.auth.login import LoginHandler +from notebook.auth.logout import LogoutHandler - from IPython.html.utils import url_path_join - - from distutils.version import LooseVersion as V - - import IPython - if V(IPython.__version__) < V('3.0'): - raise ImportError("JupyterHub Requires IPython >= 3.0, found %s" % IPython.__version__) -else: - from notebook.notebookapp import NotebookApp, aliases as notebook_aliases - from notebook.auth.login import LoginHandler - from notebook.auth.logout import LogoutHandler - - from notebook.utils import url_path_join +from notebook.utils import url_path_join # Define two methods to attach to AuthenticatedHandler,