JupyterHub - 找不到oauth_client_id

时间:2018-04-30 11:49:12

标签: oauth jupyterhub

我使用Azure使用Jupyterhub运行python笔记本。在启动VM之后,我只能使用我的用户名和密码来访问笔记本(就像ssh一样)。但是,一天后,当我切换到另一个网络(我没有声称网络可能是一个问题)我无法访问该链接。它给了我The site can't be reached错误。

所以我尝试重新运行这个过程,从那以后我一直在努力让它再次运行。我在GitHub上搜索过类似的问题,但它们也没有用。

使用kill pid命令终止进程后,我尝试通过此命令运行jupyterhub:

/anaconda/envs/py35/bin/python /anaconda/envs/py35/bin/jupyterhub-singleuser --port=50387 --notebook-dir="~/notebooks" --config=/etc/jupyterhub/jupyterhub_config.py

它给了我错误:

 JUPYTERHUB_API_TOKEN env is required to run jupyterhub-singleuser. Did you launch it manually?

所以我搜索了与此类似的github问题。我尝试使用以下方法手动生成令牌:

 jupyterhub token username

我通过export JUPYTERHUB_API_TOKEN=token将该令牌添加到JUPYTERHUB_API_TOKEN。我还在jupyterhub_config.py中为c.Authenticator.tokens添加了token:username。现在我收到了这个错误:

Traceback (most recent call last):
  File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/traitlets.py", line 528, in get
    value = obj._trait_values[self.name]
KeyError: 'oauth_client_id'

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/anaconda/envs/py35/bin/jupyterhub-singleuser", line 6, in <module>
    main()
  File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyterhub/singleuser.py", line 455, in main
    return SingleUserNotebookApp.launch_instance(argv)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyter_core/application.py", line 267, in launch_instance
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/config/application.py", line 657, in launch_instance
    app.initialize(argv)
  File "<decorator-gen-7>", line 2, in initialize
  File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/config/application.py", line 87, in catch_config_error
    return method(app, *args, **kwargs)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/notebook/notebookapp.py", line 1296, in initialize
    self.init_webapp()
  File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyterhub/singleuser.py", line 393, in init_webapp
    self.init_hub_auth()
  File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyterhub/singleuser.py", line 388, in init_hub_auth
    if not self.hub_auth.oauth_client_id:
  File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/traitlets.py", line 556, in __get__
    return self.get(obj, cls)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/traitlets.py", line 535, in get
    value = self._validate(obj, dynamic_default())
  File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/traitlets.py", line 593, in _validate
    value = self._cross_validate(obj, value)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/traitlets.py", line 599, in _cross_validate
    value = obj._trait_validators[self.name](obj, proposal)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/traitlets/traitlets.py", line 907, in __call__
    return self.func(*args, **kwargs)
  File "/anaconda/envs/py35/lib/python3.5/site-packages/jupyterhub/services/auth.py", line 439, in _ensure_not_empty
    raise ValueError("%s cannot be empty." % proposal.trait.name)
ValueError: oauth_client_id cannot be empty.

我不确定在这个过程中我哪里出错了。有谁熟悉这个问题?

1 个答案:

答案 0 :(得分:0)

尝试运行jupyterhub而不是jupyterhub-singleuser 对于您的特定用例,命令如下:
sudo /anaconda/envs/py35/bin/python /anaconda/envs/py35/bin/jupyterhub --port=50387 --notebook-dir="~/notebooks" --config=/etc/jupyterhub/jupyterhub_config.py

确保在您提到的路径中正确安装了jupyterhub。