-
Notifications
You must be signed in to change notification settings - Fork 75
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[BUG] jdaviz + jupyterlab seem to make pip hang on linux #2268
Comments
Too many things going on during install for the log to be obvious. When I did Feast your eyesCollecting jupyterlab Downloading jupyterlab-4.0.2-py3-none-any.whl (9.2 MB)Collecting jdaviz Collecting async-lru>=1.0.0 (from jupyterlab) Collecting ipykernel (from jupyterlab) Collecting jinja2>=3.0.3 (from jupyterlab) Collecting jupyter-core (from jupyterlab) Collecting jupyter-lsp>=2.0.0 (from jupyterlab) Collecting jupyter-server<3,>=2.4.0 (from jupyterlab) Collecting jupyterlab-server<3,>=2.19.0 (from jupyterlab) Collecting notebook-shim>=0.2 (from jupyterlab) Collecting packaging (from jupyterlab) Collecting tornado>=6.2.0 (from jupyterlab) Collecting traitlets (from jupyterlab) Collecting astropy>=4.3 (from jdaviz) Collecting matplotlib (from jdaviz) Collecting bqplot>=0.12.37 (from jdaviz) Collecting bqplot-image-gl>=1.4.11 (from jdaviz) Collecting glue-core!=1.10,!=1.9.0,>=1.6.0 (from jdaviz) Collecting glue-jupyter>=0.15.0 (from jdaviz) Collecting echo>=0.5.0 (from jdaviz) Collecting ipyvue>=1.6 (from jdaviz) Collecting ipyvuetify>=1.7.0 (from jdaviz) Collecting ipysplitpanes>=0.1.0 (from jdaviz) Collecting ipygoldenlayout>=0.3.0 (from jdaviz) Collecting ipywidgets>=8.0.6 (from jdaviz) Collecting voila>=0.4 (from jdaviz) Collecting pyyaml>=5.4.1 (from jdaviz) Collecting specutils>=1.9 (from jdaviz) Collecting specreduce<1.4.0,>=1.3.0 (from jdaviz) Collecting photutils>=1.4 (from jdaviz) Collecting glue-astronomy>=0.7 (from jdaviz) Collecting asteval>=0.9.23 (from jdaviz) Collecting idna (from jdaviz) Collecting vispy>=0.6.5 (from jdaviz) Collecting asdf>=2.14.3 (from jdaviz) Collecting stdatamodels>=1.3 (from jdaviz) Collecting gwcs>=0.16.1 (from jdaviz) Collecting regions>=0.6 (from jdaviz) Collecting scikit-image (from jdaviz) Collecting sidecar>=0.5.2 (from jdaviz) Collecting ipypopout>=0.0.11 (from jdaviz) Collecting astroquery (from jdaviz) Collecting asdf-standard>=1.0.1 (from asdf>=2.14.3->jdaviz) Collecting asdf-transform-schemas>=0.3 (from asdf>=2.14.3->jdaviz) Collecting asdf-unit-schemas>=0.1 (from asdf>=2.14.3->jdaviz) Collecting importlib-metadata>=4.11.4 (from asdf>=2.14.3->jdaviz) Collecting jmespath>=0.6.2 (from asdf>=2.14.3->jdaviz) Collecting jsonschema<4.18,>=4.0.1 (from asdf>=2.14.3->jdaviz) Collecting numpy>=1.20 (from asdf>=2.14.3->jdaviz) Collecting semantic-version>=2.8 (from asdf>=2.14.3->jdaviz) Collecting pyerfa>=2.0 (from astropy>=4.3->jdaviz) Collecting typing-extensions>=4.0.0 (from async-lru>=1.0.0->jupyterlab) Collecting traittypes>=0.0.6 (from bqplot>=0.12.37->jdaviz) Collecting pandas<3.0.0,>=1.0.0 (from bqplot>=0.12.37->jdaviz) Collecting qtpy (from echo>=0.5.0->jdaviz) Collecting spectral-cube>=0.6.0 (from glue-astronomy>=0.7->jdaviz) Collecting scipy>=1.1 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Requirement already satisfied: setuptools>=30.3.0 in ./miniconda3/envs/py311-tmp/lib/python3.11/site-packages (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) (67.8.0) Collecting ipython>=4.0 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting qtconsole!=5.4.2,>=4.3 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting dill>=0.2 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting xlrd>=1.2 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting openpyxl>=3.0 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting mpl-scatter-density>=0.7 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting pvextractor>=0.2 (from glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting glue-vispy-viewers>=1.0 (from glue-jupyter>=0.15.0->jdaviz) Collecting notebook>=4.0 (from glue-jupyter>=0.15.0->jdaviz) Collecting ipympl>=0.3.0 (from glue-jupyter>=0.15.0->jdaviz) Collecting ipyvolume>=0.5.0 (from glue-jupyter>=0.15.0->jdaviz) Collecting asdf-wcs-schemas (from gwcs>=0.16.1->jdaviz) Collecting asdf-astropy>=0.2.0 (from gwcs>=0.16.1->jdaviz) Collecting comm>=0.1.1 (from ipykernel->jupyterlab) Collecting debugpy>=1.6.5 (from ipykernel->jupyterlab) Collecting jupyter-client>=6.1.12 (from ipykernel->jupyterlab) Collecting matplotlib-inline>=0.1 (from ipykernel->jupyterlab) Collecting nest-asyncio (from ipykernel->jupyterlab) Collecting psutil (from ipykernel->jupyterlab) Collecting pyzmq>=20 (from ipykernel->jupyterlab) Collecting widgetsnbextension~=4.0.7 (from ipywidgets>=8.0.6->jdaviz) Collecting jupyterlab-widgets~=3.0.7 (from ipywidgets>=8.0.6->jdaviz) Collecting MarkupSafe>=2.0 (from jinja2>=3.0.3->jupyterlab) Collecting platformdirs>=2.5 (from jupyter-core->jupyterlab) Collecting anyio>=3.1.0 (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting argon2-cffi (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting jupyter-events>=0.6.0 (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting jupyter-server-terminals (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting nbconvert>=6.4.4 (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting nbformat>=5.3.0 (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting overrides (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting prometheus-client (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting send2trash (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting terminado>=0.8.3 (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting websocket-client (from jupyter-server<3,>=2.4.0->jupyterlab) Collecting babel>=2.10 (from jupyterlab-server<3,>=2.19.0->jupyterlab) Collecting json5>=0.9.0 (from jupyterlab-server<3,>=2.19.0->jupyterlab) Collecting requests>=2.28 (from jupyterlab-server<3,>=2.19.0->jupyterlab) Collecting contourpy>=1.0.1 (from matplotlib->jdaviz) Collecting cycler>=0.10 (from matplotlib->jdaviz) Collecting fonttools>=4.22.0 (from matplotlib->jdaviz) Collecting kiwisolver>=1.0.1 (from matplotlib->jdaviz) Collecting pillow>=6.2.0 (from matplotlib->jdaviz) Collecting pyparsing>=2.3.1 (from matplotlib->jdaviz) Collecting python-dateutil>=2.7 (from matplotlib->jdaviz) Collecting jupyterlab Collecting jupyter-ydoc~=0.2.4 (from jupyterlab) Collecting jupyter-server-ydoc~=0.8.0 (from jupyterlab) Collecting nbclassic (from jupyterlab) Collecting backcall (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting decorator (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting jedi>=0.16 (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting pickleshare (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting prompt-toolkit!=3.0.37,<3.1.0,>=3.0.30 (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting pygments>=2.4.0 (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting stack-data (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting pexpect>4.3 (from ipython>=4.0->glue-core!=1.10,!=1.9.0,>=1.6.0->jdaviz) Collecting jupyter-server-fileid<1,>=0.6.0 (from jupyter-server-ydoc~=0.8.0->jupyterlab) Collecting ypy-websocket<0.9.0,>=0.8.2 (from jupyter-server-ydoc~=0.8.0->jupyterlab) Collecting y-py<0.6.0,>=0.5.3 (from jupyter-ydoc~=0.2.4->jupyterlab) Collecting ipython-genutils (from notebook>=4.0->glue-jupyter>=0.15.0->jdaviz) Collecting synphot (from specreduce<1.4.0,>=1.3.0->jdaviz) Collecting ndcube>=2.0 (from specutils>=1.9->jdaviz) Collecting freetype-py (from vispy>=0.6.5->jdaviz) Collecting hsluv (from vispy>=0.6.5->jdaviz) INFO: pip is looking at multiple versions of voila to determine which version is compatible with other requirements. This could take a while. Collecting nbclassic (from jupyterlab) (goes downhill from here) tl;dr -- I suspect all the maxversion pins in voila is messing things up. Maybe @maartenbreddels or @mariobuikhuizen can help... |
It's the same on macOS. Adding "voila<0.5" in front makes it work. I think we need to add that pin to jdavis, because I don't think the voila-template in jdaviz is compatible with 0.5. Voila 0.5 started using lab extensions instead of the notebook extension. I will also take a look at adding voila 0.5 compatibility to the template and to ipypopout |
because voila-template is incompatible, see spacetelescope#2268
Thanks, Mario! I created #2269 to pin the maxversion for now. |
* MNT: Temp pin voila<0.5 because voila-template is incompatible, see #2268 * TST: Disable voila dev in test matrix
* feat: pyinstaller * codesign osx * debug: try without codesign * does not need arguments * use hooks * also download the app * use branch of pyinstaller * better hooks * pin to 5.11 Otherwise we need to do at least: + rm -rf standalone/dist/jdaviz.app/Contents/MacOS/jedi/third_party/typeshed/stdlib/ + rm -rf standalone/dist/jdaviz.app/Contents/MacOS/**/*.dist-info * fix: maintain symlinks by zipping, upload-artifact does not support it * GHA logic? * code sign on gha * run notary tool on gha * fix: redo codesign after modifications * fix: reorder zipping and notary step * remove invalid symlink * make sure the program executes * fix path of entitlements file * add comment for hint with the osx fix * gpt assisted way of running the log tool on failure * fix syntax error * fix path * comments for the future * fix uuid parsing and re-zip the app after notary step * fix: use ditto instead of zip from https://developer.apple.com/forums/thread/116831 zip might cause issues with utf8 or metadata. * comments for the future * fix uuid for notary step * upload different artifact for osx * cleanup spec file and hooks, no more __pycache__ files should be included * ci: do not cancel on failure * fix: mistune 3.0 needs this * make dmg instead of zip for osx * BUG: Fix mouseover behavior in Cubeviz spectrum viewer when spatial subset is present. Co-authored-by: Duy Nguyen <duytnguyendtn.open@gmail.com> * Remove change log from #2258 because the bug only affects unreleased code [ci skip] [rtd skip] * Deprecate get_subsets_from_viewer * Missing region index * Fix subset args * Remove get_data_from_viewer from imviz viewer tests * Remove get_data_from_viewer from mosviz data loading test and sub hardcoded viewer ref names * Mosviz test update image truth class * Fix incorrect viewer ref * Set Mos2Dviewer data statistic to None by default * Non-existent data check * Properly deprecate getters * Properly check for valueError on non-existent label * Update Specviz get_data_from_viewer test * Rename "subset_to_apply" to "spectral_subset * Codestyle * Fix docs wording Co-authored-by: Jesse Averbukh <javerbukh@gmail.com> * Catch missed code, fix bug * Retain Mosviz get_data behavior and fix change log * Undo bad diff * MNT: Add .mailmap so git shortlog -es gives sane listing. * DOC: Add warning about surface brightness in Simple Aperture Photometry plugin (#2261) * DOC: Add warning about surface brightness in Simple Aperture Photometry plugin. I am beginning to think the Simple in plugin name no longer applies. * DOC: Improve verbiage. Co-authored-by: Camilla Pacifici <camilla.pacifici@gmail.com> --------- Co-authored-by: Camilla Pacifici <camilla.pacifici@gmail.com> * FEAT: Annulus draw tool for Imviz (#2240) * FEAT: Annulus draw tool for Imviz. TODO: Need to fix icon. TST: Add tests. [ci skip] [rtd skip] * Pull in #2204 into this PR and bump upstream pins * Changed function name upstream in glue-astronomy during review process * Proper annulus icon from J. Kotler Co-authored-by: Jennifer Kotler <jennlkotler@gmail.com> * Avoid error traceback with bad annulus radii * Disable recentering for annulus * Fix test failure because not sure why spectral region is using Imviz centering method but okay. --------- Co-authored-by: Jennifer Kotler <jennlkotler@gmail.com> Co-authored-by: Ricky O'Steen <rosteen@stsci.edu> * MNT: Temporarily pin voila<0.5 (#2269) * MNT: Temp pin voila<0.5 because voila-template is incompatible, see #2268 * TST: Disable voila dev in test matrix * TST: Ignore DeprecationWarning from asteval (#2274) * TST: Ignore DeprecationWarning from asteval. For example https://github.com/newville/asteval/issues/120 * Also ignore FutureWarning from asteval * Add doc for windows latency issue * Deprecate load_spectrum * Update tests and docs from load_spectrum * Docstring suggestions Co-authored-by: P. L. Lim <2090236+pllim@users.noreply.github.com> * Changelog * Changelog * Button to export Cubeviz movie (#2264) * WIP: Backend API to write movie file but got stuck with bqplot not cooperating after first frame. [ci skip] [rtd skip] * fix: bqplot stuck after the first frame of the movie We have to run the loop outside the main thread; otherwise, the processing of messages from the frontend is blocked, causing the message with the first image to never be received. The "save_image" method can only save the next image after the previous image is received. * Fix typo, this works now from the API. [ci skip] [rtd skip] * Add frontend and tests * Add user doc * DOC: Add note about standalone app saving file into weird places. * Address some review comments * Expose FPS and fix test * DOC: Baby Shark roundtrip as promised. * DOC: Ellie said more shark! * Vue.js style improvements [ci skip] [rtd skip] Co-authored-by: Kyle Conroy <kyleconroy@gmail.com> * Display pls install msg in plugin * Address review comments * Fix test * Fix path resolution in standalone app * Improve frontend validation and access. Co-authored-by: Kyle Conroy <kyleconroy@gmail.com> * Disable video for spectrum-viewer in GUI and add comment to Slice. * Add tooltip to kill switch but it only shows when activated * Rename kill with something less scary * Hide stop button since disabling is not obvious enough, also moar tooltip * Disable the whole movie menu for spectrum viewer in Cubeviz [ci skip] [rtd skip] Co-authored-by: Ricky O'Steen <39831871+rosteen@users.noreply.github.com> * Fix RTD warnings about invalid prop and remove unnecessary frontend check now that Ricky's suggestion is accepted. --------- Co-authored-by: Mario Buikhuizen <mariobuikhuizen@gmail.com> Co-authored-by: Kyle Conroy <kyleconroy@gmail.com> Co-authored-by: Ricky O'Steen <39831871+rosteen@users.noreply.github.com> * Add functional but ugly launcher * Use launcher notebook if neither config nor filepath is specified * Codestyle * Add margins on left and right to avoid cutoff in notebook * Support launcher from cli * Codestyle * Remove URI from path text until implemented * Fix standalone bug * Specify --layout= as new required cli syntax * Remove unused import Co-authored-by: P. L. Lim <2090236+pllim@users.noreply.github.com> * Update readme to show required layout flag * Changelog * Changelog Co-authored-by: P. L. Lim <2090236+pllim@users.noreply.github.com> * Changelog * Update .github/workflows/standalone.yml Co-authored-by: P. L. Lim <2090236+pllim@users.noreply.github.com> * Update .github/workflows/standalone.yml * Update to use config launcher * Moved changelog entry to new section --------- Co-authored-by: Duy Nguyen <duytnguyendtn.open@gmail.com> Co-authored-by: Pey Lian Lim <2090236+pllim@users.noreply.github.com> Co-authored-by: Duy Tuong Nguyen <dtn5ah@virginia.edu> Co-authored-by: Jesse Averbukh <javerbukh@gmail.com> Co-authored-by: Camilla Pacifici <camilla.pacifici@gmail.com> Co-authored-by: Jennifer Kotler <jennlkotler@gmail.com> Co-authored-by: Ricky O'Steen <rosteen@stsci.edu> Co-authored-by: Mario Buikhuizen <mariobuikhuizen@gmail.com> Co-authored-by: Kyle Conroy <kyleconroy@gmail.com> Co-authored-by: Ricky O'Steen <39831871+rosteen@users.noreply.github.com>
My best guess is that the pinning of voila 0.5 https://github.com/voila-dashboards/voila/blob/v0.5.0/pyproject.toml#L37C1-L37C1 interferes with a different dependency (it could be jupyterlab). Note that regardless of this problem, I do not think jdaviz currently works with voila 0.5. This means that the current pinning in #2269 solves two problems. |
But @maartenbreddels , we cannot pin |
Jdaviz component
Other (explain in Description below)
Description
I've tested this now in a few different linuxes, and it seems reproducible. Specifically I have tried:
On any of those, if I
pip install jupyterlab jdaviz <any other packages>
pip
basically just runs for a looooong time without ever finishing. I haven't had the patience to wait it out but in all cases it is >10 min, which is way longer thanpip
normally takes. If I remove either thejdaviz
or thejupyterlab
dep it finishes in less than a minute (excluding download time).In all cases it seems like it's struggling to find a compatible version of dependencies. In the two py3.11 cases,
pip
downloads all the versions ofnotebook
from the latest down to 4.0.0 before finally building from source on 4.0.0. For 3.10 the same seem to happen but for jupyterlab. So even if I left it to finish this wouldn't work because these versions of notebook/jupyterlab are too old.How to Reproduce
pip install jupyterlab jdaviz
🐱
The text was updated successfully, but these errors were encountered: