Unclarity on directory structure / configuration
See original GitHub issueI’m currently trying to set up a jupyter notebook environment for a course of >600 students using kubernetes + jupyterhub + nbgrader. Everything jupyterhub-related seems to be working fine so far, but I’m having issues understanding the nbgrader configuration regarding courses and assignments.
My environment currently consists of 3 kubernetes nodes: one for kubernetes related administrative things, one for the jupyterhub container, and one for notebook servers. I’m using kube-spawner to spawn the notebook server containers.
Inside the container, I have 3 directories: /course
, /user
, and /exchange
, all of which are empty to begin with. My nbgrader_config.py
is as follows:
c = get_config()
c.Exchange.course_id = "example_course"
c.Exchange.root = "/exchange"
c.CourseDirectory.root = "/course"
And in jupyterhub_config.py
I’ve defined c.KubeSpawner.singleuser_working_dir = '/user'
.
Now I’ve no idea how I’d actually start creating a course. I’ve tried running nbgrader quickstart my_course
in all of the 3 directories, but in all cases, in the jupyterhub “Assignments” tab it says “No courses available”, and when I try to create an assignment in the “Formgrader” tab, I get an sql error unable to open database file
. And in the UI I can’t see the quickstart-created course anywhere, nor any assignments.
All in all I’m just really confused about how the configuration works, and the documentation is just a mess regarding this. Any ideas / pointers on what I should try?
For what it’s worth,
Operating system
Ubuntu 16.04
nbgrader --version
0.5.4
jupyterhub --version
(if used with JupyterHub)
0.9.0
jupyter notebook --version
5.4.1
Issue Analytics
- State:
- Created 5 years ago
- Reactions:1
- Comments:5 (3 by maintainers)
Top GitHub Comments
Thanks. I do have an nfs server (or a dummy server at the moment) setup so that’s not an issue. At the moment I think the issue is that the nbgrader config file isn’t being read at all - as per http://nbgrader.readthedocs.io/en/stable/user_guide/philosophy.html#example, I have an
nbgrader_config.py
in the root of my course directory, and I tried settingc.NbGrader.logfile = /var/log/nbgrader.log
in the config file, but the config file is still being created in the course directory. Do you have any idea where the config file should be in?EDIT: I managed to possibly solve the issue - In my singleuser notebook server container, I now have a
jupyter_notebook_config.py
file in/home/jovyan/.jupyter/
(the container user’s home dir’s jupyter config dir), containing the linec.NbGrader.logfile = "/var/log/grader.log"
which seems to be executed before loading any extensions, and the log file gets put in the correct place now. I haven’t tried the other options yet, but I believe those should work now, too. Hoping for the best here to be able to continue!@vishwesh5, you can check out this comment to see our current state of things. I hope to make better documentation soon.