jupyter / nbgrader

A system for assigning and grading notebooks
https://nbgrader.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
1.28k stars 316 forks source link

NBGrader Manual Grading Issue #1391

Closed JamesHF123 closed 3 years ago

JamesHF123 commented 3 years ago

I love the look of NbGrader and I am so close to getting it to work. We are working on unbunto server and I can send and receive notebooks with no issues at all. The Autograding feature works perfectly. The issue comes with Manual Grading. Whatever we apear to do we run into the same -

Sorry, the formgrader encountered an error. Please contact the administrator of the formgrader for further assistance._

Operating system

NAME="Ubuntu" VERSION="18.04.4 LTS (Bionic Beaver)" ID=ubuntu ID_LIKE=debian PRETTY_NAME="Ubuntu 18.04.4 LTS" VERSION_ID="18.04" HOME_URL="https://www.ubuntu.com/" SUPPORT_URL="https://help.ubuntu.com/" BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/" PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy" VERSION_CODENAME=bionic UBUNTU_CODENAME=bionic

jupyterhub --version (if used with JupyterHub)

ipython 7.19.0 pypi_0 pypi ipython-genutils 0.2.0 pypi_0 pypi

Expected behavior

I would expect to see the assignments that need to be marked

Actual behavior

error given above

Steps to reproduce the behavior

Simply open any assignments that need to be manually graded the auto grade function works perfectly.

contents of config file.

c.CourseDirectory.course_id = "Computing"

c.Authenticator.whitelist = [ 'james', '21it21', ]

Update this list with other assignments you want c.CourseDirectory.db_assignments = [dict(name="ps1")] c.CourseDirectory.root = '/home/jupyter-james/Computing' Change the students in this list with that actual students in your course c.CourseDirectory.db_students = [ dict(id="bitdiddle", first_name="Ben", last_name="Bitdiddle"), dict(id="hacker", first_name="Alyssa", last_name="Hacker"), dict(id="reasoner", first_name="Louis", last_name="Reasoner") ]

c.IncludeHeaderFooter.header = "source/header.ipynb"

under course I get the message no available courses and would love to sort this issue asap. I have historically used Replit Classroom but this is now going end of life and Jupyter seams like the perfect replacement for teaching Python Coding in School.

I only need 1 teacher with of course multiple students. I n the idea world multiple classes.

Please help I have spent hours on this

rushfly commented 3 years ago

I have same issue too. I'm run it in docker. Configure nbgrader with "Example Use Case: Multiple Classes" settings.

perllaghu commented 3 years ago

This sounds like a recent install.... there is a known bug with release 0.6 of nbgrader: nbconvert has been updated underneath it, and nbconvert 6.0 is not compatible.

Manually downgrade to nbconvert 5.6.1 and you'll be fine

pip install 'nbconvert==5.6.1' :)

mapariel commented 3 years ago

Same issue. I m running it on LXC (linux container). The last tip pip install 'nbconvert==5.6.1' didn't work for me.

My container is Ubuntu-server : Distributor ID: Ubuntu Description: Ubuntu 18.04.5 LTS Release: 18.04 Codename: bionic

JupyterHub version is tljh (The Littlest Jupyter Hub). JupyterHub and Nbgrader are the most recent versions

On the top of it, when a student (named "test" for instance) submits a work, another user is created named "jupyter-test"...

mapariel commented 3 years ago

Ok, problem fixed with installing older version of nbconvert. My mistake was to do it as root. With linux containers, logging in as a root seems to be the default behavior, which is not the case with Ubuntu. I used the instructions from https://github.com/jupyter/nbgrader/issues/1373 (thank you LaurentHayez) from the terminal in Jupyter :

sudo -E pip uninstall nbconvert
sudo -E pip install --upgrade nbconvert==5.6.1
JamesHF123 commented 3 years ago

you should have heard my shout of joy when this works, thank you from my sanity and my students - awesome thanks

jhamrick commented 3 years ago

Closing as duplicate of #1373