Your JupyterHub server doesn't need nbgrader. It will likely need some config to make sure that it launches Jupyter singleuser servers have access to the exchange directory.
Your JupyterLab (singleuser) server will need the nbgrader package (e.g. pip install nbgrader) and access to the exchange directory.
Both servers will need an nbgrader_config.py file with appropriate config based on your setup.
Operating system
CentOS 7.9
nbgrader --version
0.9.2
jupyterhub --version
(if used with JupyterHub)5.0.0
jupyter notebook --version
7.2.0
Expected behavior
Install nbgrader for JupyterHub with DockerSpawner (Docker image is JupyterLab)
Actual behavior
Don't know how to install it.
Steps to reproduce the behavior