angelolab / ark-analysis

Integrated pipeline for multiplexed image analysis
https://ark-analysis.readthedocs.io/en/latest/
MIT License
70 stars 25 forks source link

Error when starting Docker with update flag #1076

Open cliu72 opened 10 months ago

cliu72 commented 10 months ago

Please refer to our FAQ and look at our known issues before opening a bug report.

Describe the bug When I do start_docker.sh ---update, I get an error saying that scikit-image was not built properly (so some of the utils functions don't work). start_docker.sh without the update flag works fine. pip install . inside of the ark-analysis directory also works fine.

Expected behavior Build wheel for scikit-image properly.

To Reproduce Run start_docker.sh --update in the main branch. I tried on both Linux and Windows.

The full error message is like a billion lines long so I'm not going to copy it all here, but this is the beginning:

Building wheels for collected packages: ark-analysis, scikit-image
  Building wheel for ark-analysis (pyproject.toml) ... done
  Created wheel for ark-analysis: filename=ark_analysis-0.7.0.dev10-cp311-cp311-linux_x86_64.whl size=695891 sha256=2bb60efca
d66894e0027e604f03d42a27892a07d27a06c8d2464c60ee5d7bbc3
  Stored in directory: /root/.cache/pip/wheels/90/27/53/c41273368b7156307d2fda7acd4623db37911db15c043ca43d
  Building wheel for scikit-image (pyproject.toml) ... error
  error: subprocess-exited-with-error

  × Building wheel for scikit-image (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> [1022 lines of output]
      setup.py:9: DeprecationWarning:

        `numpy.distutils` is deprecated since NumPy 1.23.0, as a result
        of the deprecation of `distutils` itself. It will be removed for
        Python >= 3.12. For older Python versions it will remain present.
        It is recommended to use `setuptools < 60.0` for those Python versions.
        For more details, see:
          https://numpy.org/devdocs/reference/distutils_status_migration.html

        from numpy.distutils.command.build_ext import build_ext as npy_build_ext
      Partial import of skimage during the build process.
      Compiling /tmp/pip-install-a7ranq_x/scikit-image_1a0bb269c6724f06b6d88ab2886edca7/skimage/morphology/_skeletonize_3d_cy
.pyx because it changed.
      [1/1] Cythonizing /tmp/pip-install-a7ranq_x/scikit-image_1a0bb269c6724f06b6d88ab2886edca7/skimage/morphology/_skeletoni
ze_3d_cy.pyx
      running bdist_wheel
      running build
      running config_cc
      INFO: unifing config_cc, config, build_clib, build_ext, build commands --compiler options
      running config_fc
      INFO: unifing config_fc, config, build_clib, build_ext, build commands --fcompiler options
      running build_src
      INFO: build_src
      INFO: building extension "skimage._shared.geometry" sources
      INFO: building extension "skimage._shared.transform" sources
      INFO: building extension "skimage._shared.interpolation" sources
      INFO: building extension "skimage._shared.fast_exp" sources
      INFO: building extension "skimage.draw._draw" sources
      INFO: building extension "skimage.feature._cascade" sources
      INFO: building extension "skimage.feature.corner_cy" sources
      INFO: building extension "skimage.feature.censure_cy" sources
      INFO: building extension "skimage.feature.orb_cy" sources
      INFO: building extension "skimage.feature._texture" sources
      INFO: building extension "skimage.feature._hoghistogram" sources
      INFO: building extension "skimage.feature._haar" sources
      INFO: building extension "skimage.feature._sift" sources
      INFO: Pythran support for package 'scipy' will be reduced: this module is not available at runtime.
      Pythran support for package 'scipy' will be reduced: this module is not available at runtime.
      INFO: Pythran support for package 'scipy.special' will be reduced: this module is not available at runtime.
      Pythran support for package 'scipy.special' will be reduced: this module is not available at runtime.
      INFO: building extension "skimage.feature.brief_cy" sources
      INFO: building extension "skimage.feature._hessian_det_appx" sources
      INFO: building extension "skimage.restoration._unwrap_1d" sources
      INFO: building extension "skimage.restoration._unwrap_2d" sources
      INFO: building extension "skimage.restoration._unwrap_3d" sources
      INFO: building extension "skimage.restoration._denoise_cy" sources
      INFO: building extension "skimage.restoration._nl_means_denoising" sources
      INFO: building extension "skimage.restoration._rolling_ball_cy" sources
      INFO: building extension "skimage.restoration._inpaint" sources
      INFO: building extension "skimage.filters.rank.core_cy" sources

And this is the end:

      creating build/temp.linux-x86_64-3.11/skimage/draw
      INFO: compile options: '-I/tmp/pip-build-env-pvf5uvvm/overlay/lib/python3.11/site-packages/numpy/core/include -Iskimage
/_shared -I/tmp/pip-build-env-pvf5uvvm/overlay/lib/python3.11/site-packages/numpy/core/include -Ibuild/src.linux-x86_64-3.11/
numpy/distutils/include -I/usr/local/include/python3.11 -c'
      extra options: '-fopenmp -msse -msse2 -msse3'
      INFO: gcc: skimage/draw/_draw.c
      In file included from /tmp/pip-build-env-pvf5uvvm/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarray
types.h:1929,
                       from /tmp/pip-build-env-pvf5uvvm/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/ndarray
object.h:12,
                       from /tmp/pip-build-env-pvf5uvvm/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                       from skimage/draw/_draw.c:765:
      /tmp/pip-build-env-pvf5uvvm/overlay/lib/python3.11/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2
: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
         17 | #warning "Using deprecated NumPy API, disable it with " \
            |  ^~~~~~~
      INFO: gcc -pthread -shared build/temp.linux-x86_64-3.11/skimage/draw/_draw.o -L/usr/local/lib -o build/lib.linux-x86_64-3.11/skimage/draw/_draw.cpython-311-x86_64-linux-gnu.so -fopenmp
      INFO: building 'skimage.feature._cascade' extension
      INFO: compiling C++ sources
      INFO: C compiler: g++ -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC

      creating build/temp.linux-x86_64-3.11/skimage/feature
      INFO: compile options: '-I/tmp/pip-build-env-pvf5uvvm/overlay/lib/python3.11/site-packages/numpy/core/include -I/tmp/pi
p-build-env-pvf5uvvm/overlay/lib/python3.11/site-packages/numpy/core/include -Ibuild/src.linux-x86_64-3.11/numpy/distutils/include -I/usr/local/include/python3.11 -c'
      extra options: '-fopenmp -msse -msse2 -msse3'
      INFO: g++: skimage/feature/_cascade.cpp

      [Errno 2] No such file or directory: 'g++'

      error: Command "g++ -pthread -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -fPIC -I/tmp/pip-build-env-pvf5uvvm/overlay/l
ib/python3.11/site-packages/numpy/core/include -I/tmp/pip-build-env-pvf5uvvm/overlay/lib/python3.11/site-packages/numpy/core/
include -Ibuild/src.linux-x86_64-3.11/numpy/distutils/include -I/usr/local/include/python3.11 -c skimage/feature/_cascade.cpp
 -o build/temp.linux-x86_64-3.11/skimage/feature/_cascade.o -MMD -MF build/temp.linux-x86_64-3.11/skimage/feature/_cascade.o.d -fopenmp -msse -msse2 -msse3" failed with exit status 127
      INFO:
      ########### EXT COMPILER OPTIMIZATION ###########
      INFO: Platform      :
        Architecture: x64
        Compiler    : gcc

      CPU baseline  :
        Requested   : 'min'
        Enabled     : SSE SSE2 SSE3
        Flags       : -msse -msse2 -msse3
        Extra checks: none

      CPU dispatch  :
        Requested   : 'max -xop -fma4'
        Enabled     : SSSE3 SSE41 POPCNT SSE42 AVX F16C FMA3 AVX2 AVX512F AVX512CD AVX512_KNL AVX512_KNM AVX512_SKX AVX512_CL
X AVX512_CNL AVX512_ICL
        Generated   : none
      INFO: CCompilerOpt.cache_flush[863] : write cache to path -> /tmp/pip-install-a7ranq_x/scikit-image_1a0bb269c6724f06b6d
88ab2886edca7/build/temp.linux-x86_64-3.11/ccompiler_opt_cache_ext.py
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for scikit-image
Successfully built ark-analysis
Failed to build scikit-image
ERROR: Could not build wheels for scikit-image, which is required to install pyproject.toml-based projects
srivarra commented 10 months ago

@cliu72 Working on getting Python 3.12 support for all the packages. This will be fixed once it's all updated. distutils is deprecated.