InsightSoftwareConsortium / itkwidgets

An elegant Python interface for visualization on the web platform to interactively generate insights into multidimensional images, point sets, and geometry.
https://itkwidgets.readthedocs.io/
Apache License 2.0
579 stars 83 forks source link

Env check #614

Closed bnmajor closed 1 year ago

bnmajor commented 1 year ago

Adds an environment check notebook that is designed to check the environment that the user is running in to make sure that all required dependencies and extensions are correctly installed. Ideally run first before any other notebooks to prevent common issues around dependencies and extension loading.

review-notebook-app[bot] commented 1 year ago

Check out this pull request on  ReviewNB

See visual diffs & provide feedback on Jupyter Notebooks.


Powered by ReviewNB

bnmajor commented 1 year ago

@thewtex It looks like Python 3.11 is failing with the following:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
Cell In[2], line 1
----> 1 from itkwidgets import view
      3 try:
      4     import imageio.v2 as imageio

File ~/work/itkwidgets/itkwidgets/itkwidgets/__init__.py:6
      3 from imjoy_rpc import register_default_codecs
      4 register_default_codecs()
----> 6 from .imjoy import register_itkwasm_imjoy_codecs
      7 register_itkwasm_imjoy_codecs()
      9 from .viewer import Viewer, view

File ~/work/itkwidgets/itkwidgets/itkwidgets/imjoy.py:5
      1 from dataclasses import asdict
      3 from typing import Dict 
----> 5 import itkwasm
      6 import numcodecs
      7 from imjoy_rpc import api

File /opt/hostedtoolcache/Python/3.11.2/x64/lib/python3.11/site-packages/itkwasm/__init__.py:14
     12 from .text_file import TextFile
     13 from .text_stream import TextStream
---> 14 from .pipeline import Pipeline
     15 from .pipeline_input import PipelineInput
     16 from .pipeline_output import PipelineOutput

File /opt/hostedtoolcache/Python/3.11.2/x[64](https://github.com/InsightSoftwareConsortium/itkwidgets/actions/runs/4234626820/jobs/7357183283#step:6:65)/lib/python3.11/site-packages/itkwasm/pipeline.py:20
     17 from .int_types import IntTypes
     18 from .float_types import FloatTypes
---> 20 from wasmer import engine, wasi, Store, Module, ImportObject, Instance
     21 from wasmer_compiler_cranelift import Compiler
     23 def _memoryview_to_numpy_array(component_type, buf):

File /opt/hostedtoolcache/Python/3.11.2/x64/lib/python3.11/site-packages/wasmer/__init__.py:1
----> 1 raise ImportError("Wasmer is not available on this system")

ImportError: Wasmer is not available on this system

It does seem that there are no wheels for Wasmer for 3.11: https://pypi.org/project/wasmer/1.1.0/#files, but running the tests locally in a conda env with 3.11 I am not seeing this error. I am running Ubuntu 20.04 still but ubuntu-latest has been on 22.04 since October so that shouldn't be the issue I don't think? Any ideas?

thewtex commented 1 year ago

@bnmajor yes, I ran into this, too, filed an issue: https://github.com/wasmerio/wasmer-python/issues/696

For now, let's disable 3.11 in CI, create an issue to re-enable. I will likely use an alternative to wasmer-python itk-wasm.

bnmajor commented 1 year ago

@thewtex Sounds good, thanks! #618 disables 3.11 testing for now

bnmajor commented 1 year ago

@thewtex This should be good to go now

thewtex commented 1 year ago

@bnmajor thank you so much!

Please see minor issue noted inline.

bnmajor commented 1 year ago

@thewtex Thanks! Fixed now :slightly_smiling_face: