moorepants / me41055

Course website for TU Delft's Multibody Dynamics B course
https://moorepants.github.io/me41055
Creative Commons Attribution 4.0 International
1 stars 3 forks source link

Make sure latest versions of packages are installed on Vocareum #9

Closed moorepants closed 2 years ago

moorepants commented 2 years ago

When in a Jupyter notebook on Vocareum you can type:

import sys
!{sys.executable} -m pip freeze

to see all of the packages available for the notebook environment. This is the list on 2022-01-19:

``` absl-py==0.9.0 affine==2.3.0 alabaster==0.7.12 alembic==1.3.2 altair==4.0.0 ansel==0.1.1 antlr4-python3-runtime==4.7.2 appdirs==1.4.3 appnope==0.1.0 argh==0.26.2 arrow==0.15.4 arviz==0.5.1 asn1crypto==1.2.0 astor==0.8.1 astroid==2.3.3 astropy==4.0 asttokens==2.0.4 astunparse==1.6.3 async-generator==1.10 atari-py==0.2.6 atomicwrites==1.3.0 attrs==19.1.0 autograd==1.3 autopep8==1.4.4 autoviz==0.0.81 Babel==2.7.0 backcall==0.2.0 backports-abc==0.5 backports.shutil-get-terminal-size==1.0.0 backports.ssl-match-hostname==3.7.0.1 beakerx==1.4.1 beautifulsoup4==4.8.1 bitstring==3.1.6 bkcharts==0.2 bleach==3.1.5 blinker==1.4 blis==0.4.1 bokeh==1.4.0 boto==2.49.0 boto3==1.18.28 botocore==1.21.28 branca==0.3.1 Brotli==1.0.9 bunch==1.0.1 bz2file==0.98 cachetools==4.0.0 callable==0.1.2 catalogue==0.0.8 category-encoders==2.1.0 certifi==2020.6.20 certipy==0.1.3 cffi==1.13.2 cftime==1.0.4.2 chardet==3.0.4 Click==7.0 click-plugins==1.1.1 cligj==0.5.0 cloudpickle==1.2.2 cmdstanpy==0.9.68 colorama==0.4.4 combo==0.0.8 configobj==5.0.6 confuse==1.0.0 control==0.8.2 convertdate==2.3.2 coverage==4.5.3 coveralls==1.9.2 cryptography==2.8 custom-inherit==2.2.2 CVXcanon==0.1.1 cvxopt==1.2.3 cvxpy==1.0.25 cycler==0.10.0 cymem==2.0.3 Cython==0.29.14 dash==1.19.0 dash-core-components==1.15.0 dash-cytoscape==0.2.0 dash-html-components==1.1.2 dash-renderer==1.9.0 dash-table==4.11.2 dask==2.9.0 datascience==0.17.0 decorator==4.4.2 defusedxml==0.6.0 descartes==1.1.0 diff-match-patch==20181111 dill==0.3.1.1 dimod==0.8.18 dispy==4.11.1 dlx==1.0.4 dmba==0.0.10 docker==4.1.0 docloud==1.0.375 docopt==0.6.2 docplex==2.12.182 docutils==0.15.2 dwave-networkx==0.8.3 ecos==2.0.7.post1 editdistance==0.5.3 entrypoints==0.3 enum34==1.1.10 ephem==4.0.0.2 et-xmlfile==1.0.1 ete3==3.1.1 fancyimpute==0.5.4 fastcache==1.1.0 fastdtw==0.3.4 ffmpeg-normalize==1.15.6 findspark==1.3.0 Fiona==1.8.13 flake8==3.7.9 Flask==1.1.1 Flask-Compress==1.9.0 Flask-Cors==3.0.10 flatbuffers==2.0 folium==0.10.1 funcsigs==1.0.2 future==0.18.2 gast==0.3.3 gcloud==0.18.3 ged4py==0.4.0 gensim==3.8.1 geopandas==0.6.2 gevent==21.1.2 gofer-grader==1.1.0 google-auth==1.10.0 google-auth-oauthlib==0.4.1 google-pasta==0.1.8 googleapis-common-protos==1.6.0 graphframes==0.6 graphviz==0.13.2 greenlet==1.0.0 grove==0.0.13 grpcio==1.26.0 gym==0.17.3 h5py==2.10.0 helpdev==0.6.10 hijri-converter==2.2.0 holidays==0.11.2 holoviews==1.12.7 html5lib==0.9999999 htmlmin==0.1.12 httplib2==0.15.0 idaes-pse==1.11.0 idna==2.8 igraph==0.9.8 imageio==2.6.1 imagesize==1.1.0 imbalanced-learn==0.8.1 imblearn==0.0 immutables==0.6 importlib-metadata==1.6.1 impyute==0.0.8 inflection==0.3.1 iniparse==0.4 interpret==0.2.4 interpret-core==0.2.4 intervaltree==3.0.2 introcs==1.2.1 ipaddress==1.0.23 ipykernel==5.1.3 ipyleaflet==0.11.6 ipympl==0.6.3 ipyparallel==6.2.4 ipython==7.10.2 ipython-cypher==0.2.6 ipython-genutils==0.2.0 ipython-mongo==0.3.3 ipython-sql==0.3.9 ipyturtle==0.2.4 ipywidgets==7.6.3 isort==4.3.21 itsdangerous==1.1.0 jax==0.2.13 jaxlib==0.1.67 jdcal==1.4.1 jedi==0.17.0 jeepney==0.4.1 Jinja2==2.11.2 jmespath==0.9.4 joblib==0.14.1 json5==0.8.5 jsonpatch==1.24 jsonpointer==2.0 jsonschema==3.2.0 jupyter==1.0.0 jupyter-client==5.3.4 jupyter-console==6.0.0 jupyter-contrib-core==0.3.3 jupyter-core==4.6.1 jupyter-highlight-selected-word==0.2.0 jupyter-latex-envs==1.4.6 jupyter-nbextensions-configurator==0.4.1 jupyterhub==1.0.0 jupyterhub-dummyauthenticator==0.3.1 jupyterhub-simplespawner==0.1 jupyterlab==1.2.4 jupyterlab-launcher==0.13.1 jupyterlab-server==1.0.6 jupyterlab-widgets==1.0.0 jupyterthemes==0.20.0 jupytext==1.10.2 jwcrypto==0.6.0 Keras==2.3.1 Keras-Applications==1.0.8 Keras-Preprocessing==1.1.0 keyring==20.0.0 kiwisolver==1.1.0 knnimpute==0.1.0 korean-lunar-calendar==0.2.1 lancet-ioam==0.9.0 lazy-object-proxy==1.4.3 lda==1.1.0 ldap3==2.6.1 lesscpy==0.14.0 libdw==4.2.1 lime==0.2.0.1 llvmlite==0.30.0 Logbook==1.5.3 LunarCalendar==0.0.9 lxml==4.4.2 Mako==1.1.0 Markdown==3.1.1 markdown-it-py==0.6.2 markovchain==0.2.5 MarkupSafe==1.1.1 marshmallow==3.3.0 marshmallow-polyfield==5.7 matplotcheck==0.1.2 matplotlib==3.4.3 mccabe==0.6.1 mdit-py-plugins==0.2.5 metakernel==0.24.3 minorminer==0.1.9 missingno==0.4.2 missingpy==0.2.0 mistune==0.8.4 mizani==0.7.1 mlxtend==0.17.0 mock==4.0.2 mord==0.6 more-itertools==8.0.2 mpmath==1.1.0 msgpack==0.6.2 multipledispatch==0.6.0 multiprocess==0.70.9 munch==2.5.0 murmurhash==1.0.2 mypy==0.782 mypy-extensions==0.4.3 mysql-connector-python==8.0.18 nbconvert==5.6.1 nbformat==4.4.0 nbsphinx==0.8.0 ndg-httpsclient==0.5.1 neo4j==1.7.6 neo4jrestclient==2.1.1 neobolt==1.7.16 neotime==1.7.4 nest-asyncio==1.2.1 netCDF4==1.5.3 networkx==2.6.3 nglview==2.7.1 nltk==3.6.5 nose==1.3.7 notebook==6.0.2 ntlm-auth==1.4.0 numba==0.46.0 numpy==1.21.4 numpydoc==0.9.2 oauth2client==4.1.3 oauthlib==3.1.0 octave-kernel==0.31.0 olefile==0.46 opencv-python==4.1.2.30 openpyxl==3.0.2 opt-einsum==3.1.0 osqp==0.6.1 packaging==20.4 palettable==3.3.0 pamela==1.0.0 pandapipes==0.5.0 pandapower==2.7.0 pandas==1.3.4 pandas-ml==0.6.1 pandas-profiling==2.3.0 pandocfilters==1.4.2 param==1.9.2 parso==0.7.0 pathfinder==0.6.2 pathfinding==0.0.4 pathtools==0.1.2 patsy==0.5.1 pbr==5.4.4 pcappy==0.3 PennyLane==0.7.0 pexpect==4.8.0 phik==0.9.8 pickleshare==0.7.5 Pillow==6.2.1 Pint==0.18 plac==1.1.3 plotchecker==0.2.0 plotly==4.4.1 plotnine==0.7.1 pluggy==0.13.1 ply==3.11 pomegranate==0.14.5 portalocker==1.5.2 precursion==1.0.0 preshed==3.0.2 prettytable==0.7.2 prometheus-client==0.8.0 prompt-toolkit==2.0.10 prophet==1.0.1 protobuf==3.12.2 psutil==5.6.7 psycopg2==2.8.4 psycopg2-binary==2.8.4 ptyprocess==0.6.0 PuLP==2.0 py==1.8.1 py4j==0.10.8.1 pyarrow==5.0.0 pyasn1==0.4.8 pyasn1-modules==0.2.7 pyassimp==4.1.4 pycodestyle==2.5.0 pycos==4.8.13 pycparser==2.19 pycurl==7.43.0.3 pydocstyle==5.0.1 pydot==1.4.1 pydot-ng==2.0.0 pydotplus==2.0.2 pyenchant==2.0.0 pyerf==1.0.1 pyflakes==2.1.1 pygame==1.9.6 pyglet==1.4.8 Pygments==2.6.1 PyJWT==1.7.1 pylatexenc==2.1 pylint==2.4.4 pymc3==3.8 PyMeeus==0.5.11 pymongo==3.11.2 Pympler==0.8 PyMySQL==0.9.3 pyod==0.7.7.1 pyodbc==4.0.28 Pyomo==6.2 PyOpenGL==3.1.4 PyOpenGL-accelerate==3.1.4 pyOpenSSL==19.1.0 pyparsing==2.4.7 pyperclip==1.8.0 pypng==0.0.20 pyproj==2.4.2.post1 PyQt5==5.14.0 PyQt5-sip==12.7.0 PyQtWebEngine==5.14.0 pyquil==2.20.0 Pyro4==4.77 pyrsistent==0.16.0 pyscf==1.6.5 pyserial==3.4 pyspark==2.4.4 pystan==2.19.1.1 pytest==5.3.2 pytest-pylint==0.14.1 python-crfsuite==0.9.6 python-cypher==0.18.1 python-dateutil==2.8.1 python-debian==0.1.36 python-editor==1.0.4 python-http-client==3.2.1 python-igraph==0.9.8 python-jsonrpc-server==0.3.2 python-jwt==3.2.5 python-language-server==0.31.4 python-rapidjson==0.9.1 python-slugify==5.0.2 python-systemd==0.0.9 pythymiodw==2.3.9 pytraj==2.0.4 pytz==2020.1 pyudev==0.21.0 PyUtilib==5.7.3 pyviz-comms==0.7.2 PyWavelets==1.1.1 pyxattr==0.7.1 pyxdg==0.26 PyYAML==5.2 pyzmq==18.1.1 QDarkStyle==2.7 qiskit==0.14.0 qiskit-aer==0.3.4 qiskit-aqua==0.6.1 qiskit-chemistry==0.5.0 qiskit-ibmq-provider==0.4.4 qiskit-ignis==0.2.0 qiskit-terra==0.11.0 QtAwesome==0.6.0 qtconsole==4.6.0 QtPy==1.9.0 Quandl==3.4.8 quantecon==0.4.7 quantum-grove==1.7.0 Quickstart==0.4 qutip==4.6.2 rasterio==1.1.7 rbfopt==4.2.2 redis==3.3.11 regex==2021.11.10 reportlab==3.5.32 requests==2.22.0 requests-ntlm==1.1.0 requests-oauthlib==1.3.0 requests-toolbelt==0.9.1 retrying==1.3.3 rope==0.14.0 rpcq==3.3.0 rsa==4.0 ruamel.yaml==0.16.10 ruamel.yaml.clib==0.2.0 s3transfer==0.5.0 SALib==1.3.12 scikit-image==0.16.2 scikit-learn==1.0.1 scikit-surprise==1.1.0 scikits.bootstrap==1.0.1 scipy==1.4.1 scs==2.1.1.post2 seaborn==0.11.2 SecretStorage==3.1.1 selenium==3.141.0 semantic-version==2.6.0 Send2Trash==1.5.0 sendgrid==6.1.0 serpent==1.28 setuptools-git==1.2 shap==0.34.0 Shapely==1.6.4.post2 simplegeneric==0.8.1 simplejson==3.17.0 sip==5.0.1 six==1.15.0 skope-rules==1.0.1 smart-open==1.9.0 snowballstemmer==2.0.0 snuggs==1.4.7 sortedcontainers==2.1.0 soupsieve==1.9.5 spacy==2.2.3 Sphinx==2.3.1 sphinxcontrib-applehelp==1.0.1 sphinxcontrib-devhelp==1.0.1 sphinxcontrib-htmlhelp==1.0.2 sphinxcontrib-jsmath==1.0.1 sphinxcontrib-qthelp==1.0.2 sphinxcontrib-serializinghtml==1.1.3 sphinxcontrib-websupport==1.1.2 spyder==4.0.0 spyder-kernels==1.8.1 SQLAlchemy==1.3.17 sqlparse==0.3.1 squarify==0.4.3 srsly==0.2.0 sseclient==0.0.24 ssh-import-id==5.6 statsmodels==0.12.0 stemgraphic==0.9.0 suod==0.0.0 sympy==1.6.1 tabulate==0.8.6 tclab==0.4.9 tensorboard==2.2.2 tensorboard-plugin-wit==1.6.0.post3 tensorflow==2.2.0 tensorflow-estimator==2.2.0 tensorflow-tensorboard==1.5.1 termcolor==1.1.0 terminado==0.8.3 testpath==0.4.4 text-unidecode==1.3 textblob==0.15.3 texttable==1.6.4 tflearn==0.3.2 Theano==1.0.4 thinc==7.3.1 thonny==3.1.0 threadpoolctl==3.0.0 thriftpy==0.3.9 tinydb==4.5.2 toml==0.10.0 toolz==0.10.0 torch==1.3.1 torchvision==0.4.2 torchviz==0.0.1 tornado==6.0.4 toyplot==0.18.0 toytree==2.0.1 tqdm==4.41.0 traitlets==4.3.3 traittypes==0.2.1 treeinterpreter==0.2.3 typed-ast==1.4.0 typing==3.7.4.1 typing-extensions==3.10.0.2 ujson==1.35 urlgrabber==4.1.0 urllib3==1.25.7 v==0.0.0 vega==2.6.0 vega-datasets==0.8.0 virtualenv==16.7.9 wasabi==0.5.0 watchdog==0.9.0 wcwidth==0.2.4 webencodings==0.5.1 websocket-client==0.57.0 websockets==7.0 Werkzeug==0.16.0 widgetsnbextension==3.5.1 wrapt==1.11.2 wurlitzer==2.0.0 xarray==0.14.1 xgboost==0.90 xlrd==1.2.0 XlsxWriter==3.0.2 yapf==0.29.0 zipp==3.1.0 zope.event==4.5.0 zope.interface==5.2.0 ```

THe most recent versions of the primary packages are:

Other packages we may need:

Note that conda does not seem to be used or be available in Vocareum.

moorepants commented 2 years ago

I tried to install sympy 1.9 using vocpipinstall3.6 sympy==1.9 but if failed to install. Also it seemed to be upgrading a sympy 1.3 install which is not the same one the students have access to in the jupyter notebook. If you type !pip freeze in the notebook instead of !{sys.executable} -m pip freeze while in a Vocareum notebook then you get two different sets of packages. The vocpipinstall3.6 command seems to install things in the latter, which is not what students have access to in the notebook.

moorepants commented 2 years ago

BTW, this is the instructions Vocareum provides: https://help.vocareum.com/en/articles/3658985-installing-python-packages

moorepants commented 2 years ago
ddd_v1_t_olvC_735068@runweb47395:~$ python3.8 -m pip install -U scipy                                                                                   
Defaulting to user installation because normal site-packages is not writeable                                                                           
Collecting scipy                                                                                                                                        
  Using cached scipy-1.7.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (39.3 MB)                                                           
Requirement already satisfied, skipping upgrade: numpy<1.23.0,>=1.16.5 in ./.local/lib/python3.8/site-packages (from scipy) (1.22.1)                    
Installing collected packages: scipy                                                                                                                    
ERROR: After October 2020 you may experience errors when installing or updating packages. This is because pip will change the way that it resolves depen
dency conflicts.                                                                                                                                        

We recommend you use --use-feature=2020-resolver to test your packages with the new resolver before it becomes the default.                             

pyscf 1.7.5.1 requires scipy<1.5, but you'll have scipy 1.7.3 which is incompatible.                                                                    
pandapower 2.7.0 requires scipy<=1.6.0, but you'll have scipy 1.7.3 which is incompatible.                                                              
Successfully installed scipy-1.7.3                                                                                                                      
WARNING: You are using pip version 20.2.3; however, version 21.3.1 is available.                                                                        
You should consider upgrading via the '/usr/local/bin/python3.8 -m pip install --upgrade pip' command.                                                  
ddd_v1_t_olvC_735068@runweb47395:~$ python3.8 -m pip install -U matplotlib                                                                              
Defaulting to user installation because normal site-packages is not writeable                                                                           
Collecting matplotlib                                                                                                                                   
  Downloading matplotlib-3.5.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl (11.3 MB)                                                           
     |████████████████████████████████| 11.3 MB 6.1 MB/s                                                                                                
Requirement already satisfied, skipping upgrade: pyparsing>=2.2.1 in /usr/local/lib/python3.8/site-packages (from matplotlib) (2.4.7)                   
Collecting fonttools>=4.22.0                                                                                                                            
  Downloading fonttools-4.29.0-py3-none-any.whl (895 kB)                                                                                                
     |████████████████████████████████| 895 kB 71.1 MB/s                                                                                                
Requirement already satisfied, skipping upgrade: kiwisolver>=1.0.1 in /usr/local/lib/python3.8/site-packages (from matplotlib) (1.3.1)                  
Requirement already satisfied, skipping upgrade: numpy>=1.17 in ./.local/lib/python3.8/site-packages (from matplotlib) (1.22.1)                         
Requirement already satisfied, skipping upgrade: packaging>=20.0 in /usr/local/lib/python3.8/site-packages (from matplotlib) (20.8)                     
Requirement already satisfied, skipping upgrade: pillow>=6.2.0 in /usr/local/lib/python3.8/site-packages (from matplotlib) (7.2.0)                      
Requirement already satisfied, skipping upgrade: cycler>=0.10 in /usr/local/lib/python3.8/site-packages (from matplotlib) (0.10.0)                      
Requirement already satisfied, skipping upgrade: python-dateutil>=2.7 in /usr/local/lib/python3.8/site-packages (from matplotlib) (2.8.1)               
Requirement already satisfied, skipping upgrade: six in /usr/local/lib/python3.8/site-packages (from cycler>=0.10->matplotlib) (1.15.0)                 
Installing collected packages: fonttools, matplotlib                                                                                                    
Successfully installed fonttools-4.29.0 matplotlib-3.5.1                                                                                                
WARNING: You are using pip version 20.2.3; however, version 21.3.1 is available.                                                                        
You should consider upgrading via the '/usr/local/bin/python3.8 -m pip install --upgrade pip' command.
ddd_v1_t_olvC_735068@runweb47429:~$ python3.8 -m jupyter nbextension install --p                                                                        
Exception while loading config file /etc/jupyter/jupyter_notebook_config.py                                                                             
    Traceback (most recent call last):                                                                                                                  
      File "/usr/local/lib/python3.5/dist-packages/traitlets/config/application.                                                                        
        config = loader.load_config()                                                                                                                   
      File "/usr/local/lib/python3.5/dist-packages/traitlets/config/loader.py",                                                                         
        self._read_file_as_dict()                                                                                                                       
      File "/usr/local/lib/python3.5/dist-packages/traitlets/config/loader.py",                                                                         
        py3compat.execfile(conf_filename, namespace)                                                                                                    
      File "/usr/local/lib/python3.5/dist-packages/ipython_genutils/py3compat.py                                                                        
        exec(compiler(f.read(), fname, 'exec'), glob, loc)                                                                                              
      File "/etc/jupyter/jupyter_notebook_config.py", line 2, in <module>                                                                               
        from voc_origin_config import VocOrigin                                                                                                         
    ImportError: No module named 'voc_origin_config'                                                                                                    
Traceback (most recent call last):                                                                                                                      
  File "/usr/local/bin/jupyter-nbextension", line 11, in <module>                                                                                       
    sys.exit(main())                                                                                                                                    
  File "/usr/local/lib/python3.5/dist-packages/jupyter_core/application.py", lin                                                                        
    return super(JupyterApp, cls).launch_instance(argv=argv, **kwargs)                                                                                  
  File "/usr/local/lib/python3.5/dist-packages/traitlets/config/application.py",                                                                        
    app.start()                                                                                                                                         
  File "/usr/local/lib/python3.5/dist-packages/notebook/nbextensions.py", line 9                                                                        
    super(NBExtensionApp, self).start()   
moorepants commented 2 years ago

Release notebooks, update, go to student view and it seems that the packages are also up-to-date for the students: image

moorepants commented 2 years ago

One more thing to check here is whether these updated packages will be used when vocareum runs nbgrader to grade the assignments. I read in the vocareum website that this may not be the case. :(

moorepants commented 2 years ago

Bad news. Even though I've installed the packages for the teacher and the student (which seems to work), the grading environment does not have the up-to-date packages. In the sandbox I have an assignment and notebook that tests the cse=True option in lambdify() and it fails after pressing submit: image

moorepants commented 2 years ago

I now tried vocpipinstall3.8 -U sympy numpy scipy matplotlib which is supposed to do a "global" install, but it says everything is satisfied and doesn't upgrade. I'm guessing that means that the grading environment doesn't get upgraded if that is the command that is supposed to do it.

moorepants commented 2 years ago

This prints the sympy version just before submission: image It's now at sympy 1.7.1.

moorepants commented 2 years ago

Going back to teacher view and running the notebook shows sympy 1.9.

moorepants commented 2 years ago

I chatted with Vocaerum support. Seems like there is no way for me to get consistent packages installed across teacher, student, grading environments on my own. Apparently, the standard procedure is to write to them with a request for a custom package setup. Here is my chat:

V> Hi 😀­­­­ Have a look around! Let us know if you have any questions.

J> I can't figure out how to provide updated Python packages that are available
in the teacher, student, and grading environments. vocpipinstall3.8 says that
my package is at the correct version but the grading fails because it the
envrinoment used for grading still has old packages.

V> Give the team a way to reach you:
V> Operator profile
V> You'll be notified here and by email

J> j.k.moore@tudelft.nl

K> Hi, Which course or assignment is this for? We will take a closer look at
the issue. Thanks, Kevin

J> I have a sandbox in brightspace. I want to use the latest versions of sympy,
numpy, scipy, and matplotlib.

K> Ok taking a look now

J> test_autograder_with_sympy_1point9 is the notebook
J> the sm.lambdify(..., cse=True) is failing
J> cse=True is an option available in sympy 1.9 only
J> assignment name " Trying custom package installa..."
J> I've also been struggling to install jupyter notebook extensions so they are
available in all environments for the right python version. Seems jupyter is
running on pthon 3.5 (which is no longer supported btw) but the kernels are
newer, so you have to install old versions of extensions to get things to
possibly work.
J> but that's issue #2
J> For issue #1, I want to update python packages to the latest versions for
student, teacher, and grading environments for the python3.8 kernel.
J> Trying to figure out that procedure. This article
https://intercom.help/vocareum/en/articles/3658985-installing-python-packages
hasn't gotten me where I need to be.
J> And be able to do that for all my assignments, reproducibly.
J> More info on my trials, if relevant: https://github.com/moorepants/me41055/issues/9
J> Hi, it's been 17 minutes. Are you still checking? Any updates?

K> Hi, Yes. We will have to pass this on to our installation team once we
finish checking all the packages. Kevin

J> ok, should I wait here or for an email?
J> The basic question is how to updgrade packages to the same versions across
student, teacher, grading.
J> I can't figure it out from your documentation.

K> Wait for an email as it can take a day for the installation team to properly
update and test across the whole environment to make sure the packages are all
the same

J> Ok, so if I want this ready for my class next, week, it sounds like I have
to rely on you all.
J> Should I send an email with all the packages I need installed across the
evenironments?
J> What's the basic procedure for this?
J> Most of the default packages you all have are quite old.
J> Including some python versions.
J> Is there a standard procedure for getting things upgraded and setup?

K> The standard procedure is to let us know and we will have our team install
the proper packages. You said in a previous message you wanted the latest
versions of sympy, numpy, scipy, and matplotlib. All for 3.8 correct?

J> Ok, good to know that's the procedure.
J> Can I send an email with my requests?
J> What email address?

K> Yes, please send it to kevin@vocareum.com and I will pass it along.

J> great, thanks
J> I'll send it in a few minutes
J> Thanks for the help.

K> You're very welcome. I will keep you updated and let you know when the new
packages are ready
moorepants commented 2 years ago

I've emailed support with this request:

Hi Kevin,

I am at TU Delft. I have two courses in Brightspace that I'd like updated:

We are testing things in the sandbox and then going to make the actual assignments in the Multibody B course.

I will use the Python 3.8 kernel in the Jupyter notebook and make use of nbgrader autograder cells and want the same packages set up consistently across those three environments.

I'd like these packages at their latest versions for Python 3.8 across teacher, student, and grading environment:

I'm trying to get my first homework posted and shared by Friday here. If it is possible to have these working asap, that would be helpful. But I can avoid new features in the packages for the first homework if more time is needed.

I will also have some more packages that need installation for later in the course. Some of them are non-trivial to install with pip due to C extension compilation. Will you all also manage these installations with a future request?

Jason

moorepants commented 2 years ago

Just got an update from Kevin: "As of right now they are still being worked on, so at this time I do not believe they will be ready by this Friday. I will let you know as soon as they have been tested and are ready to go. I cannot give an ETA right now, but I will try to get it done as soon as possible if not by this weekend."

moorepants commented 2 years ago

I tried adding import sys;!{sys.executable} -m pip install -U sympy at the top of the notebook and then submitting for the grade checker. But this didn't even work. I don't understand why that wouldn't work. image

moorepants commented 2 years ago

I just tried this experiment again with a new notebook and it now seemed to work: image

moorepants commented 2 years ago

Running sympy and numpy updates in the student view has some interesting conflict messages: image

moorepants commented 2 years ago

Vocareum has updated the packages for the Jupyter 3.8 kernel for numpy, sympy, matplotlib, and scipy. Here is the message from Sarah:

Good morning Jason,

I have a message from Vocareum for late last night our time:

sympy 1.9, numpy 1.22.1, scipy 1.7.3 and matplotlib 3.5.1 have all been installed for Python 3.8. We have sent a priority request to our installation team to install pandas 1.4.0 for Python 3.8. As well as ipympl and ipywidgets for Python 3.5. We will update you as soon as they are ready to use.

As soon as I have confirmation that they're ready to use, I'll let you know.

Take care, Sarah

I just checked it in the "Jason's test (ignore)" assignment with grading and it all works. The new sympy methods are available. So we will not need the hack to get things installed there.

I will work with them to get the other packages updated and installed for Q4. So closing this issue now.

moorepants commented 2 years ago

Just for later reference: I had a phone call with Sarah (TUD) and Sanjay (Vocareum) and we can send them requests to install packages for us. He said they can typically do it in 48 hours. So that should be the standard approach.