scikit-image / scikit-image

Image processing in Python
https://scikit-image.org
Other
6.09k stars 2.24k forks source link

Build from source instructions don't work on Windows #6710

Closed haesleinhuepf closed 1 year ago

haesleinhuepf commented 1 year ago

Description:

Hi all,

I just noticed that build instructions from source don't work on [my] Windows. Thus, it's hard for Windows users to contribute to scikit-image.

Way to reproduce:

The instructions for example say:

pip install -r <(cat requirements/*.txt)

Which results in this error on Windows:

The system cannot find the file specified.

After running

pip install -e . -vv

There's an error, too (which might be related to the error shown above):

  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\build\metadata_editable.py", line 39, in generate_editable_metadata
    raise MetadataGenerationFailed(package_details=details) from error
pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed
Remote version of pip: 22.3.1
Local version of pip:  22.3.1
Was pip installed by pip? False
Removed file:///C:/structure/code/scikit-image from build tracker 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-1p9pdwli'
Removed build tracker: 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-1p9pdwli'

### Traceback or output:

```Shell
Using pip 22.3.1 from C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip (python 3.9)
Non-user install because site-packages writeable
Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-build-tracker-1p9pdwli
Initialized build tracking at C:\Users\haase\AppData\Local\Temp\pip-build-tracker-1p9pdwli
Created build tracker: C:\Users\haase\AppData\Local\Temp\pip-build-tracker-1p9pdwli
Entered build tracker: C:\Users\haase\AppData\Local\Temp\pip-build-tracker-1p9pdwli
Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-install-rprd1onw
Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-ephem-wheel-cache-xjoohesb
Obtaining file:///C:/structure/code/scikit-image
  Added file:///C:/structure/code/scikit-image to build tracker 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-1p9pdwli'
  Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23
  Running command pip subprocess to install build dependencies
  Using pip 22.3.1 from C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages\pip (python 3.9)
  Collecting meson-python@ git+https://github.com/mesonbuild/meson-python@babdf709618fbeeaf59634bc2b4331ca5f7924ce
    Using cached meson_python-0.13.0.dev0-py3-none-any.whl
  Ignoring numpy: markers 'python_version == "3.10" and platform_system == "Windows" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.8" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.10" and platform_system != "Windows" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.11" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version >= "3.12"' don't match your environment
  Ignoring numpy: markers 'python_version >= "3.8" and platform_python_implementation == "PyPy"' don't match your environment
  Collecting wheel
    Using cached wheel-0.38.4-py3-none-any.whl (36 kB)
  Collecting setuptools<=65.5
    Using cached setuptools-65.5.0-py3-none-any.whl (1.2 MB)
  Collecting packaging
    Using cached packaging-23.0-py3-none-any.whl (42 kB)
  Collecting Cython>=0.29.24
    Using cached Cython-0.29.33-py2.py3-none-any.whl (987 kB)
  Collecting pythran
    Using cached pythran-0.12.1-py3-none-any.whl (4.2 MB)
  Collecting lazy_loader>=0.1
    Using cached lazy_loader-0.1-py3-none-any.whl (8.6 kB)
  Collecting numpy==1.21.1
    Using cached numpy-1.21.1-cp39-cp39-win_amd64.whl (14.0 MB)
  Collecting pyproject-metadata>=0.6.1
    Using cached pyproject_metadata-0.7.0-py3-none-any.whl (7.4 kB)
  Collecting tomli>=1.0.0
    Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
  Collecting meson>=0.63.3
    Using cached meson-1.0.0-py3-none-any.whl (900 kB)
  Collecting colorama
    Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
  Collecting typing-extensions>=3.7.4
    Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
  Collecting gast~=0.5.0
    Using cached gast-0.5.3-py3-none-any.whl (19 kB)
  Collecting beniget~=0.4.0
    Using cached beniget-0.4.1-py3-none-any.whl (9.4 kB)
  Collecting ply>=3.4
    Using cached ply-3.11-py2.py3-none-any.whl (49 kB)
  Installing collected packages: ply, wheel, typing-extensions, tomli, setuptools, packaging, numpy, meson, lazy_loader, gast, Cython, colorama, pyproject-metadata, beniget, pythran, meson-python
    Creating C:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Scripts
  ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
  tensorflow-intel 2.11.0 requires gast<=0.4.0,>=0.2.1, but you have gast 0.5.3 which is incompatible.
  pyshtools 4.10 requires numpy>=1.22.3, but you have numpy 1.21.1 which is incompatible.
  napari-clusters-plotter 0.6.0 requires joblib==1.1.0, but you have joblib 1.2.0 which is incompatible.
  devbio-napari 0.8.1 requires numpy>=1.21.4, but you have numpy 1.21.1 which is incompatible.
  Successfully installed Cython-0.29.33 beniget-0.4.1 colorama-0.4.6 gast-0.5.3 lazy_loader-0.1 meson-1.0.0 meson-python-0.13.0.dev0 numpy-1.21.1 packaging-23.0 ply-3.11 pyproject-metadata-0.7.0 pythran-0.12.1 setuptools-65.5.0 tomli-2.0.1 typing-extensions-4.4.0 wheel-0.38.4
  Installing build dependencies ... done
  Running command Checking if build backend supports build_editable
  Checking if build backend supports build_editable ... done
  Running command Getting requirements to build editable
  Getting requirements to build editable ... done
  Running command pip subprocess to install backend dependencies
  Using pip 22.3.1 from C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages\pip (python 3.9)
  Collecting ninja>=1.8.2
    Using cached ninja-1.11.1-py2.py3-none-win_amd64.whl (313 kB)
  Installing collected packages: ninja
    Creating C:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\normal\Scripts
  Successfully installed ninja-1.11.1
  Installing backend dependencies ... done
  Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-modern-metadata-o5iuo_yn
  Running command Preparing editable metadata (pyproject.toml)
  + meson setup --reconfigure --prefix=C:\Users\haase\mambaforge\envs\bio39 C:\structure\code\scikit-image C:\structure\code\scikit-image\.mesonpy\editable\build --native-file=C:\structure\code\scikit-image\.mesonpy-native-file.ini -Ddebug=false -Doptimization=2 --python.purelibdir C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages --python.platlibdir C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages
  The Meson build system
  Version: 1.0.0
  Source dir: C:\structure\code\scikit-image
  Build dir: C:\structure\code\scikit-image\.mesonpy\editable\build
  Build type: native build
  Project name: scikit-image
  Project version: 0.20.0.dev0
  Activating VS 17.4.1
  C compiler for the host machine: cl (msvc 19.34.31933 "Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31933 for x64")
  C linker for the host machine: link link 14.34.31933.0
  C++ compiler for the host machine: cl (msvc 19.34.31933 "Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31933 for x64")
  C++ linker for the host machine: link link 14.34.31933.0
  Host machine cpu family: x86_64
  Host machine cpu: x86_64
  Compiler for C supports arguments -Wno-unused-but-set-variable: NO (cached)
  Compiler for C supports arguments -Wno-unused-function: NO (cached)
  Compiler for C supports arguments -Wno-conversion: NO (cached)
  Compiler for C supports arguments -Wno-misleading-indentation: NO (cached)
  Compiler for C supports arguments -Wno-incompatible-pointer-types: NO (cached)
  Library m found: NO
  Checking if "-Wl,--version-script" : links: NO (cached)
  Program cython found: YES (C:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Scripts\cython.EXE)
  Program pythran found: YES (C:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Scripts\pythran.EXE)
  Program cp found: YES (C:\Users\haase\mambaforge\Library\usr\bin\cp.EXE)
  Program python found: YES (C:\Users\haase\mambaforge\envs\bio39\python.exe)
  Program _build_utils/cythoner.py found: YES (python C:\structure\code\scikit-image\skimage\_build_utils/cythoner.py)
  Compiler for C supports arguments -Wno-unused-but-set-variable: NO (cached)
  Build targets in project: 58

  scikit-image 0.20.0.dev0

    User defined options
      Native files     : C:\structure\code\scikit-image\.mesonpy-native-file.ini
      debug            : false
      optimization     : 2
      prefix           : C:\Users\haase\mambaforge\envs\bio39
      python.platlibdir: C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages
      python.purelibdir: C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages

  Found ninja.EXE-1.11.1.git.kitware.jobserver-1 at C:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\normal\Scripts\ninja.EXE

  Visual Studio environment is needed to run Ninja. It is recommended to use Meson wrapper:
  C:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Scripts\meson compile -C .
  + meson compile
  [1/152] Compiling C object skimage/feature/_sift.cp39-win_amd64.pyd.p/meson-generated__sift.c.obj
  FAILED: skimage/feature/_sift.cp39-win_amd64.pyd.p/meson-generated__sift.c.obj
  "cl" "-Iskimage\feature\_sift.cp39-win_amd64.pyd.p" "-Iskimage\feature" "-I..\..\..\skimage\feature" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\feature\_sift.cp39-win_amd64.pyd.p\meson-generated__sift.c.pdb" /Foskimage/feature/_sift.cp39-win_amd64.pyd.p/meson-generated__sift.c.obj "/c" skimage/feature/_sift.cp39-win_amd64.pyd.p/_sift.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [2/152] Compiling C object skimage/feature/censure_cy.cp39-win_amd64.pyd.p/meson-generated_censure_cy.c.obj
  FAILED: skimage/feature/censure_cy.cp39-win_amd64.pyd.p/meson-generated_censure_cy.c.obj
  "cl" "-Iskimage\feature\censure_cy.cp39-win_amd64.pyd.p" "-Iskimage\feature" "-I..\..\..\skimage\feature" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\feature\censure_cy.cp39-win_amd64.pyd.p\meson-generated_censure_cy.c.pdb" /Foskimage/feature/censure_cy.cp39-win_amd64.pyd.p/meson-generated_censure_cy.c.obj "/c" skimage/feature/censure_cy.cp39-win_amd64.pyd.p/censure_cy.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [3/152] Compiling C object skimage/_shared/interpolation.cp39-win_amd64.pyd.p/meson-generated_interpolation.c.obj
  FAILED: skimage/_shared/interpolation.cp39-win_amd64.pyd.p/meson-generated_interpolation.c.obj
  "cl" "-Iskimage\_shared\interpolation.cp39-win_amd64.pyd.p" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\_shared\interpolation.cp39-win_amd64.pyd.p\meson-generated_interpolation.c.pdb" /Foskimage/_shared/interpolation.cp39-win_amd64.pyd.p/meson-generated_interpolation.c.obj "/c" skimage/_shared/interpolation.cp39-win_amd64.pyd.p/interpolation.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [4/152] Compiling C object skimage/feature/corner_cy.cp39-win_amd64.pyd.p/meson-generated_corner_cy.c.obj
  FAILED: skimage/feature/corner_cy.cp39-win_amd64.pyd.p/meson-generated_corner_cy.c.obj
  "cl" "-Iskimage\feature\corner_cy.cp39-win_amd64.pyd.p" "-Iskimage\feature" "-I..\..\..\skimage\feature" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\feature\corner_cy.cp39-win_amd64.pyd.p\meson-generated_corner_cy.c.pdb" /Foskimage/feature/corner_cy.cp39-win_amd64.pyd.p/meson-generated_corner_cy.c.obj "/c" skimage/feature/corner_cy.cp39-win_amd64.pyd.p/corner_cy.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [5/152] Compiling C++ object skimage/feature/_haar.cp39-win_amd64.pyd.p/meson-generated__haar.cpp.obj
  FAILED: skimage/feature/_haar.cp39-win_amd64.pyd.p/meson-generated__haar.cpp.obj
  "cl" "-Iskimage\feature\_haar.cp39-win_amd64.pyd.p" "-Iskimage\feature" "-I..\..\..\skimage\feature" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W2" "/EHsc" "/std:c++14" "/permissive-" "/O2" "-Wno-cpp" "/Fdskimage\feature\_haar.cp39-win_amd64.pyd.p\meson-generated__haar.cpp.pdb" /Foskimage/feature/_haar.cp39-win_amd64.pyd.p/meson-generated__haar.cpp.obj "/c" skimage/feature/_haar.cp39-win_amd64.pyd.p/_haar.cpp
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [6/152] Compiling C object skimage/feature/_texture.cp39-win_amd64.pyd.p/meson-generated__texture.c.obj
  FAILED: skimage/feature/_texture.cp39-win_amd64.pyd.p/meson-generated__texture.c.obj
  "cl" "-Iskimage\feature\_texture.cp39-win_amd64.pyd.p" "-Iskimage\feature" "-I..\..\..\skimage\feature" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\feature\_texture.cp39-win_amd64.pyd.p\meson-generated__texture.c.pdb" /Foskimage/feature/_texture.cp39-win_amd64.pyd.p/meson-generated__texture.c.obj "/c" skimage/feature/_texture.cp39-win_amd64.pyd.p/_texture.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [7/152] Compiling C object skimage/_shared/transform.cp39-win_amd64.pyd.p/meson-generated_transform.c.obj
  FAILED: skimage/_shared/transform.cp39-win_amd64.pyd.p/meson-generated_transform.c.obj
  "cl" "-Iskimage\_shared\transform.cp39-win_amd64.pyd.p" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\_shared\transform.cp39-win_amd64.pyd.p\meson-generated_transform.c.pdb" /Foskimage/_shared/transform.cp39-win_amd64.pyd.p/meson-generated_transform.c.obj "/c" skimage/_shared/transform.cp39-win_amd64.pyd.p/transform.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [8/152] Compiling C object skimage/feature/_canny_cy.cp39-win_amd64.pyd.p/meson-generated__canny_cy.c.obj
  FAILED: skimage/feature/_canny_cy.cp39-win_amd64.pyd.p/meson-generated__canny_cy.c.obj
  "cl" "-Iskimage\feature\_canny_cy.cp39-win_amd64.pyd.p" "-Iskimage\feature" "-I..\..\..\skimage\feature" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\feature\_canny_cy.cp39-win_amd64.pyd.p\meson-generated__canny_cy.c.pdb" /Foskimage/feature/_canny_cy.cp39-win_amd64.pyd.p/meson-generated__canny_cy.c.obj "/c" skimage/feature/_canny_cy.cp39-win_amd64.pyd.p/_canny_cy.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [9/152] Compiling C object skimage/feature/_hoghistogram.cp39-win_amd64.pyd.p/meson-generated__hoghistogram.c.obj
  FAILED: skimage/feature/_hoghistogram.cp39-win_amd64.pyd.p/meson-generated__hoghistogram.c.obj
  "cl" "-Iskimage\feature\_hoghistogram.cp39-win_amd64.pyd.p" "-Iskimage\feature" "-I..\..\..\skimage\feature" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\feature\_hoghistogram.cp39-win_amd64.pyd.p\meson-generated__hoghistogram.c.pdb" /Foskimage/feature/_hoghistogram.cp39-win_amd64.pyd.p/meson-generated__hoghistogram.c.obj "/c" skimage/feature/_hoghistogram.cp39-win_amd64.pyd.p/_hoghistogram.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [10/152] Compiling C object skimage/_shared/fast_exp.cp39-win_amd64.pyd.p/meson-generated_fast_exp.c.obj
  FAILED: skimage/_shared/fast_exp.cp39-win_amd64.pyd.p/meson-generated_fast_exp.c.obj
  "cl" "-Iskimage\_shared\fast_exp.cp39-win_amd64.pyd.p" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\_shared\fast_exp.cp39-win_amd64.pyd.p\meson-generated_fast_exp.c.pdb" /Foskimage/_shared/fast_exp.cp39-win_amd64.pyd.p/meson-generated_fast_exp.c.obj "/c" skimage/_shared/fast_exp.cp39-win_amd64.pyd.p/fast_exp.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [11/152] Compiling C object skimage/feature/orb_cy.cp39-win_amd64.pyd.p/meson-generated_orb_cy.c.obj
  FAILED: skimage/feature/orb_cy.cp39-win_amd64.pyd.p/meson-generated_orb_cy.c.obj
  "cl" "-Iskimage\feature\orb_cy.cp39-win_amd64.pyd.p" "-Iskimage\feature" "-I..\..\..\skimage\feature" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\feature\orb_cy.cp39-win_amd64.pyd.p\meson-generated_orb_cy.c.pdb" /Foskimage/feature/orb_cy.cp39-win_amd64.pyd.p/meson-generated_orb_cy.c.obj "/c" skimage/feature/orb_cy.cp39-win_amd64.pyd.p/orb_cy.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [12/152] Compiling C object skimage/_shared/geometry.cp39-win_amd64.pyd.p/meson-generated_geometry.c.obj
  FAILED: skimage/_shared/geometry.cp39-win_amd64.pyd.p/meson-generated_geometry.c.obj
  "cl" "-Iskimage\_shared\geometry.cp39-win_amd64.pyd.p" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\_shared\geometry.cp39-win_amd64.pyd.p\meson-generated_geometry.c.pdb" /Foskimage/_shared/geometry.cp39-win_amd64.pyd.p/meson-generated_geometry.c.obj "/c" skimage/_shared/geometry.cp39-win_amd64.pyd.p/geometry.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [13/152] Compiling C++ object skimage/feature/_cascade.cp39-win_amd64.pyd.p/meson-generated__cascade.cpp.obj
  FAILED: skimage/feature/_cascade.cp39-win_amd64.pyd.p/meson-generated__cascade.cpp.obj
  "cl" "-Iskimage\feature\_cascade.cp39-win_amd64.pyd.p" "-Iskimage\feature" "-I..\..\..\skimage\feature" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W2" "/EHsc" "/std:c++14" "/permissive-" "/O2" "-Wno-cpp" "/Fdskimage\feature\_cascade.cp39-win_amd64.pyd.p\meson-generated__cascade.cpp.pdb" /Foskimage/feature/_cascade.cp39-win_amd64.pyd.p/meson-generated__cascade.cpp.obj "/c" skimage/feature/_cascade.cp39-win_amd64.pyd.p/_cascade.cpp
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [14/152] Compiling C object skimage/draw/_draw.cp39-win_amd64.pyd.p/meson-generated__draw.c.obj
  FAILED: skimage/draw/_draw.cp39-win_amd64.pyd.p/meson-generated__draw.c.obj
  "cl" "-Iskimage\draw\_draw.cp39-win_amd64.pyd.p" "-Iskimage\draw" "-I..\..\..\skimage\draw" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\draw\_draw.cp39-win_amd64.pyd.p\meson-generated__draw.c.pdb" /Foskimage/draw/_draw.cp39-win_amd64.pyd.p/meson-generated__draw.c.obj "/c" skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [15/152] Compiling C object skimage/filters/rank/bilateral_cy.cp39-win_amd64.pyd.p/meson-generated_bilateral_cy.c.obj
  FAILED: skimage/filters/rank/bilateral_cy.cp39-win_amd64.pyd.p/meson-generated_bilateral_cy.c.obj
  "cl" "-Iskimage\filters\rank\bilateral_cy.cp39-win_amd64.pyd.p" "-Iskimage\filters\rank" "-I..\..\..\skimage\filters\rank" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\filters\rank\bilateral_cy.cp39-win_amd64.pyd.p\meson-generated_bilateral_cy.c.pdb" /Foskimage/filters/rank/bilateral_cy.cp39-win_amd64.pyd.p/meson-generated_bilateral_cy.c.obj "/c" skimage/filters/rank/bilateral_cy.cp39-win_amd64.pyd.p/bilateral_cy.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [16/152] Compiling C object skimage/filters/_multiotsu.cp39-win_amd64.pyd.p/meson-generated__multiotsu.c.obj
  FAILED: skimage/filters/_multiotsu.cp39-win_amd64.pyd.p/meson-generated__multiotsu.c.obj
  "cl" "-Iskimage\filters\_multiotsu.cp39-win_amd64.pyd.p" "-Iskimage\filters" "-I..\..\..\skimage\filters" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\overlay\Lib\site-packages\numpy\core\include" "-Iskimage\_shared" "-I..\..\..\skimage\_shared" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/W2" "/O2" "-Wno-cpp" "/Fdskimage\filters\_multiotsu.cp39-win_amd64.pyd.p\meson-generated__multiotsu.c.pdb" /Foskimage/filters/_multiotsu.cp39-win_amd64.pyd.p/meson-generated__multiotsu.c.obj "/c" skimage/filters/_multiotsu.cp39-win_amd64.pyd.p/_multiotsu.c
  cl : Command line error D8021 : invalid numeric argument '/Wno-cpp'
  [17/152] Generating skimage/feature/_hessian_det_appx_pythran with a custom command
  [18/152] Generating skimage/feature/_brief_pythran with a custom command
  ninja: build stopped: subcommand failed.
  Activating VS 17.4.1
  INFO: automatically activated MSVC compiler environment
  INFO: autodetecting backend as ninja
  INFO: calculating backend command to run: C:\Users\haase\AppData\Local\Temp\pip-build-env-g9djsd23\normal\Scripts\ninja.EXE
  error: subprocess-exited-with-error

  × Preparing editable metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: 'C:\Users\haase\mambaforge\envs\bio39\python.exe' 'C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py' prepare_metadata_for_build_editable 'C:\Users\haase\AppData\Local\Temp\tmpnm0z68p6'
  cwd: C:\structure\code\scikit-image
  Preparing editable metadata (pyproject.toml) ... error
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Exception information:
Traceback (most recent call last):
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\build\metadata_editable.py", line 37, in generate_editable_metadata
    distinfo_dir = backend.prepare_metadata_for_build_editable(metadata_dir)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\utils\misc.py", line 719, in prepare_metadata_for_build_editable
    return super().prepare_metadata_for_build_editable(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_vendor\pep517\wrappers.py", line 242, in prepare_metadata_for_build_editable
    return self._call_hook('prepare_metadata_for_build_editable', {
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_vendor\pep517\wrappers.py", line 309, in _call_hook
    self._subprocess_runner(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\utils\subprocess.py", line 252, in runner
    call_subprocess(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\utils\subprocess.py", line 224, in call_subprocess
    raise error
pip._internal.exceptions.InstallationSubprocessError: Preparing editable metadata (pyproject.toml) exited with 1

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\cli\base_command.py", line 160, in exc_logging_wrapper
    status = run_func(*args)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\cli\req_command.py", line 247, in wrapper
    return func(self, options, args)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\commands\install.py", line 400, in run
    requirement_set = resolver.resolve(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 73, in resolve
    collected = self.factory.collect_root_requirements(root_reqs)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 491, in collect_root_requirements
    req = self._make_requirement_from_install_req(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 453, in _make_requirement_from_install_req
    cand = self._make_candidate_from_link(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 185, in _make_candidate_from_link
    self._editable_candidate_cache[link] = EditableCandidate(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 322, in __init__
    super().__init__(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 162, in __init__
    self.dist = self._prepare()
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 231, in _prepare
    dist = self._prepare_distribution()
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 332, in _prepare_distribution
    return self._factory.preparer.prepare_editable_requirement(self._ireq)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\prepare.py", line 633, in prepare_editable_requirement
    dist = _get_prepared_distribution(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\prepare.py", line 69, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\distributions\sdist.py", line 61, in prepare_distribution_metadata
    self.req.prepare_metadata()
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\req\req_install.py", line 529, in prepare_metadata
    self.metadata_directory = generate_editable_metadata(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\build\metadata_editable.py", line 39, in generate_editable_metadata
    raise MetadataGenerationFailed(package_details=details) from error
pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed
Remote version of pip: 22.3.1
Local version of pip:  22.3.1
Was pip installed by pip? False
Removed file:///C:/structure/code/scikit-image from build tracker 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-1p9pdwli'
Removed build tracker: 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-1p9pdwli'

Version information:

3.9.15 | packaged by conda-forge | (main, Nov 22 2022, 08:41:22) [MSC v.1929 64 bit (AMD64)]
Windows-10-10.0.19045-SP0
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
File C:\structure\code\scikit-image\skimage\__init__.py:122
    121 try:
--> 122     from ._shared import geometry
    123     del geometry

ImportError: cannot import name 'geometry' from 'skimage._shared' (C:\structure\code\scikit-image\skimage\_shared\__init__.py)

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
Cell In[1], line 3
      1 import sys; print(sys.version)
      2 import platform; print(platform.platform())
----> 3 import skimage; print(f'scikit-image version: {skimage.__version__}')
      4 import numpy; print(f'numpy version: {numpy.__version__}')

File C:\structure\code\scikit-image\skimage\__init__.py:125
    123     del geometry
    124 except ImportError as e:
--> 125     _raise_build_error(e)
    127 # Legacy imports into the root namespace; not advertised in __all__
    128 from .util.dtype import (
    129     dtype_limits,
    130     img_as_float32,
   (...)
    136     img_as_bool
    137 )

File C:\structure\code\scikit-image\skimage\__init__.py:102, in _raise_build_error(e)
     98 if local_dir == "skimage":
     99     # Picking up the local install: this will work only if the
    100     # install is an 'inplace build'
    101     msg = _INPLACE_MSG
--> 102 raise ImportError(
    103     f"{e}\nIt seems that scikit-image has not been built correctly.\n{msg}"
    104 )

ImportError: cannot import name 'geometry' from 'skimage._shared' (C:\structure\code\scikit-image\skimage\_shared\__init__.py)
It seems that scikit-image has not been built correctly.

Your install of scikit-image appears to be broken.
Try re-installing the package following the instructions at:
https://scikit-image.org/docs/stable/install.html
eli-schwartz commented 1 year ago

It's erroring out on various build edges that try to run the MSVC compiler with warning flags that are only supported by gcc-like compilers. This should probably lift out those flags and process them somewhere with cxx.get_supported_arguments().

stefanv commented 1 year ago

@robertwb Being a seasoned developer, and with a Windows machine to test on, is this something you'd like to try your hand at? The meson.build format is very straightforward, and they have good docs to go with it.

haesleinhuepf commented 1 year ago

Note: this is might be a duplicate of / related to :

CC @zoccoler

stefanv commented 1 year ago

@haesleinhuepf Please check whether your problem has been solved on main.

haesleinhuepf commented 1 year ago

Hi @stefanv ,

thanks for the instant response. I tried. Unfortunately, it doesn't work yet:

(bio39) C:\structure\code\hslh_scikit-image>pip install -e . -vv
Using pip 22.3.1 from C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip (python 3.9)
Non-user install because site-packages writeable
Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-build-tracker-1czbu9o2
Initialized build tracking at C:\Users\haase\AppData\Local\Temp\pip-build-tracker-1czbu9o2
Created build tracker: C:\Users\haase\AppData\Local\Temp\pip-build-tracker-1czbu9o2
Entered build tracker: C:\Users\haase\AppData\Local\Temp\pip-build-tracker-1czbu9o2
Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-install-rclyekyx
Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-ephem-wheel-cache-rkcc1g9h
Obtaining file:///C:/structure/code/hslh_scikit-image
  Added file:///C:/structure/code/hslh_scikit-image to build tracker 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-1czbu9o2'
  Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo
  Running command pip subprocess to install build dependencies
  Using pip 22.3.1 from C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages\pip (python 3.9)
  Collecting meson-python@ git+https://github.com/mesonbuild/meson-python@babdf709618fbeeaf59634bc2b4331ca5f7924ce
    Using cached meson_python-0.13.0.dev0-py3-none-any.whl
  Ignoring numpy: markers 'python_version == "3.10" and platform_system == "Windows" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.8" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.10" and platform_system != "Windows" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.11" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version >= "3.12"' don't match your environment
  Ignoring numpy: markers 'python_version >= "3.8" and platform_python_implementation == "PyPy"' don't match your environment
  Collecting wheel
    Using cached wheel-0.38.4-py3-none-any.whl (36 kB)
  Collecting setuptools<=65.5
    Using cached setuptools-65.5.0-py3-none-any.whl (1.2 MB)
  Collecting packaging
    Using cached packaging-23.0-py3-none-any.whl (42 kB)
  Collecting Cython>=0.29.24
    Using cached Cython-0.29.33-py2.py3-none-any.whl (987 kB)
  Collecting pythran
    Using cached pythran-0.12.1-py3-none-any.whl (4.2 MB)
  Collecting lazy_loader>=0.1
    Using cached lazy_loader-0.1-py3-none-any.whl (8.6 kB)
  Collecting numpy==1.21.1
    Using cached numpy-1.21.1-cp39-cp39-win_amd64.whl (14.0 MB)
  Collecting typing-extensions>=3.7.4
    Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
  Collecting meson>=0.63.3
    Using cached meson-1.0.0-py3-none-any.whl (900 kB)
  Collecting pyproject-metadata>=0.6.1
    Using cached pyproject_metadata-0.7.1-py3-none-any.whl (7.4 kB)
  Collecting tomli>=1.0.0
    Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
  Collecting colorama
    Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
  Collecting beniget~=0.4.0
    Using cached beniget-0.4.1-py3-none-any.whl (9.4 kB)
  Collecting ply>=3.4
    Using cached ply-3.11-py2.py3-none-any.whl (49 kB)
  Collecting gast~=0.5.0
    Using cached gast-0.5.3-py3-none-any.whl (19 kB)
  Installing collected packages: ply, wheel, typing-extensions, tomli, setuptools, packaging, numpy, meson, lazy_loader, gast, Cython, colorama, pyproject-metadata, beniget, pythran, meson-python
    Creating C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Scripts
  ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
  tensorflow-intel 2.11.0 requires gast<=0.4.0,>=0.2.1, but you have gast 0.5.3 which is incompatible.
  pyshtools 4.10 requires numpy>=1.22.3, but you have numpy 1.21.1 which is incompatible.
  napari-clusters-plotter 0.6.0 requires joblib==1.1.0, but you have joblib 1.2.0 which is incompatible.
  devbio-napari 0.8.1 requires numpy>=1.21.4, but you have numpy 1.21.1 which is incompatible.
  Successfully installed Cython-0.29.33 beniget-0.4.1 colorama-0.4.6 gast-0.5.3 lazy_loader-0.1 meson-1.0.0 meson-python-0.13.0.dev0 numpy-1.21.1 packaging-23.0 ply-3.11 pyproject-metadata-0.7.1 pythran-0.12.1 setuptools-65.5.0 tomli-2.0.1 typing-extensions-4.4.0 wheel-0.38.4
  Installing build dependencies ... done
  Running command Checking if build backend supports build_editable
  Checking if build backend supports build_editable ... done
  Running command Getting requirements to build editable
  Getting requirements to build editable ... done
  Running command pip subprocess to install backend dependencies
  Using pip 22.3.1 from C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages\pip (python 3.9)
  Collecting ninja>=1.8.2
    Using cached ninja-1.11.1-py2.py3-none-win_amd64.whl (313 kB)
  Installing collected packages: ninja
    Creating C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\normal\Scripts
  Successfully installed ninja-1.11.1
  Installing backend dependencies ... done
  Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-modern-metadata-pwjxtm32
  Running command Preparing editable metadata (pyproject.toml)
  + meson setup --reconfigure --prefix=C:\Users\haase\mambaforge\envs\bio39 C:\structure\code\hslh_scikit-image C:\structure\code\hslh_scikit-image\.mesonpy\editable\build --native-file=C:\structure\code\hslh_scikit-image\.mesonpy-native-file.ini -Ddebug=false -Doptimization=2 --python.purelibdir C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages --python.platlibdir C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages
  Traceback (most recent call last):
    File "C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Lib\site-packages\mesonbuild\mesonmain.py", line 193, in run
      return options.run_func(options)
    File "C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Lib\site-packages\mesonbuild\msetup.py", line 309, in run
      app.generate()
    File "C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Lib\site-packages\mesonbuild\msetup.py", line 186, in generate
      self._generate(env)
    File "C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Lib\site-packages\mesonbuild\msetup.py", line 250, in _generate
      intr.backend.generate()
    File "C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Lib\site-packages\mesonbuild\backend\ninjabackend.py", line 633, in generate
      self.generate_ending()
    File "C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Lib\site-packages\mesonbuild\backend\ninjabackend.py", line 3449, in generate_ending
      deps = self.get_regen_filelist()
    File "C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Lib\site-packages\mesonbuild\backend\backends.py", line 1212, in get_regen_filelist
      self.check_clock_skew(deps)
    File "C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Lib\site-packages\mesonbuild\backend\backends.py", line 1233, in check_clock_skew
      ftime = os.path.getmtime(absf)
    File "C:\Users\haase\mambaforge\envs\bio39\lib\genericpath.py", line 55, in getmtime
      return os.stat(filename).st_mtime
  FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\\structure\\code\\scikit-image\\.mesonpy-native-file.ini'
  The Meson build system
  Version: 1.0.0
  Source dir: C:\structure\code\hslh_scikit-image
  Build dir: C:\structure\code\hslh_scikit-image\.mesonpy\editable\build
  Build type: native build
  Project name: scikit-image
  Project version: 0.20.0.dev0
  Activating VS 17.4.1
  C compiler for the host machine: cl (msvc 19.34.31933 "Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31933 for x64")
  C linker for the host machine: link link 14.34.31933.0
  C++ compiler for the host machine: cl (msvc 19.34.31933 "Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31933 for x64")
  C++ linker for the host machine: link link 14.34.31933.0
  Host machine cpu family: x86_64
  Host machine cpu: x86_64
  Compiler for C supports arguments -Wno-unused-but-set-variable: NO (cached)
  Compiler for C supports arguments -Wno-unused-function: NO (cached)
  Compiler for C supports arguments -Wno-conversion: NO (cached)
  Compiler for C supports arguments -Wno-misleading-indentation: NO (cached)
  Compiler for C supports arguments -Wno-incompatible-pointer-types: NO (cached)
  Library m found: NO
  Checking if "-Wl,--version-script" : links: NO
  Program cython found: YES (C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Scripts\cython.EXE)
  Program pythran found: YES (C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Scripts\pythran.EXE)
  Program cp found: YES (C:\Users\haase\mambaforge\Library\usr\bin\cp.EXE)
  Program python3 found: YES (C:\Users\haase\mambaforge\envs\bio39\python.exe)
  Program _build_utils/cythoner.py found: YES (python C:\structure\code\hslh_scikit-image\skimage\_build_utils/cythoner.py)
  Compiler for C++ supports arguments -Wno-cpp: NO
  Compiler for C supports arguments -Wno-unused-but-set-variable: NO (cached)
  Build targets in project: 58

  scikit-image 0.20.0.dev0

    User defined options
      Native files     : C:\structure\code\hslh_scikit-image\.mesonpy-native-file.ini
      debug            : false
      optimization     : 2
      prefix           : C:\Users\haase\mambaforge\envs\bio39
      python.platlibdir: C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages
      python.purelibdir: C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages

  Found ninja.EXE-1.11.1.git.kitware.jobserver-1 at C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\normal\Scripts\ninja.EXE

  Visual Studio environment is needed to run Ninja. It is recommended to use Meson wrapper:
  C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Scripts\meson compile -C .

  ERROR: Unhandled python OSError. This is probably not a Meson bug, but an issue with your build environment.
  error: subprocess-exited-with-error

  × Preparing editable metadata (pyproject.toml) did not run successfully.
  │ exit code: 2
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: 'C:\Users\haase\mambaforge\envs\bio39\python.exe' 'C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py' prepare_metadata_for_build_editable 'C:\Users\haase\AppData\Local\Temp\tmpklxrd_m_'
  cwd: C:\structure\code\hslh_scikit-image
  Preparing editable metadata (pyproject.toml) ... error
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Exception information:
Traceback (most recent call last):
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\build\metadata_editable.py", line 37, in generate_editable_metadata
    distinfo_dir = backend.prepare_metadata_for_build_editable(metadata_dir)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\utils\misc.py", line 719, in prepare_metadata_for_build_editable
    return super().prepare_metadata_for_build_editable(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_vendor\pep517\wrappers.py", line 242, in prepare_metadata_for_build_editable
    return self._call_hook('prepare_metadata_for_build_editable', {
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_vendor\pep517\wrappers.py", line 309, in _call_hook
    self._subprocess_runner(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\utils\subprocess.py", line 252, in runner
    call_subprocess(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\utils\subprocess.py", line 224, in call_subprocess
    raise error
pip._internal.exceptions.InstallationSubprocessError: Preparing editable metadata (pyproject.toml) exited with 2

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\cli\base_command.py", line 160, in exc_logging_wrapper
    status = run_func(*args)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\cli\req_command.py", line 247, in wrapper
    return func(self, options, args)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\commands\install.py", line 400, in run
    requirement_set = resolver.resolve(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 73, in resolve
    collected = self.factory.collect_root_requirements(root_reqs)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 491, in collect_root_requirements
    req = self._make_requirement_from_install_req(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 453, in _make_requirement_from_install_req
    cand = self._make_candidate_from_link(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 185, in _make_candidate_from_link
    self._editable_candidate_cache[link] = EditableCandidate(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 322, in __init__
    super().__init__(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 162, in __init__
    self.dist = self._prepare()
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 231, in _prepare
    dist = self._prepare_distribution()
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 332, in _prepare_distribution
    return self._factory.preparer.prepare_editable_requirement(self._ireq)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\prepare.py", line 633, in prepare_editable_requirement
    dist = _get_prepared_distribution(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\prepare.py", line 69, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\distributions\sdist.py", line 61, in prepare_distribution_metadata
    self.req.prepare_metadata()
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\req\req_install.py", line 529, in prepare_metadata
    self.metadata_directory = generate_editable_metadata(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\build\metadata_editable.py", line 39, in generate_editable_metadata
    raise MetadataGenerationFailed(package_details=details) from error
pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed
Remote version of pip: 23.0
Local version of pip:  22.3.1
Was pip installed by pip? False
Removed file:///C:/structure/code/hslh_scikit-image from build tracker 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-1czbu9o2'
Removed build tracker: 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-1czbu9o2'
stefanv commented 1 year ago

Excellent, this is a new and known problem! It is easy to work around by running the Meson compile command shown.

haesleinhuepf commented 1 year ago

Excuse me, which shown command solves this problem @stefanv ?

stefanv commented 1 year ago
  C:\Users\haase\AppData\Local\Temp\pip-build-env-i6iqmkvo\overlay\Scripts\meson compile -C .
haesleinhuepf commented 1 year ago

Unfortunately, this command doesn't work

(bio39) C:\structure\code\hslh_scikit-image>C:\Users\haase\AppData\Local\Temp\pip-build-env-znkvkeut\overlay\Scripts\meson compile -C .
The system cannot find the path specified.

Can you give me any hints where / when / how to call this command? I'm new to compiling python libraries so I have no idea what I'm doing here. Thanks!

stefanv commented 1 year ago

Maybe just meson compile -C . would work?

stefanv commented 1 year ago

BTW if you have a Windows machine you can give me SSH access to, I'd be happy to debug these issues myself.

haesleinhuepf commented 1 year ago

No luck here either.

(bio39) C:\structure\code\hslh_scikit-image>meson compile -C .
'meson' is not recognized as an internal or external command,
operable program or batch file.

BTW if you have a Windows machine you can give me SSH access to, I'd be happy to debug these issues myself.

No I don't and I doubt I would manage how to open a Windows machine to the outside via SSH. (I'm really not a command line guy)

It's surprising that @zoccoler and I are the first Windows folks trying to develop scikit-image ...

Anyway, thanks for your assistance! There is no hurry. If there is Windows support upcoming and / or a documentation page / blog post explaining how to develop scikit-image on Windows, I volunteer as tester / reviewer. Just ping me. Thanks again!

eli-schwartz commented 1 year ago

meson setup --reconfigure --prefix=C:\Users\haase\mambaforge\envs\bio39 C:\structure\code\hslh_scikit-image C:\structure\code\hslh_scikit-image.mesonpy\editable\build --native-file=C:\structure\code\hslh_scikit-image.mesonpy-native-file.ini -Ddebug=false -Doptimization=2 --python.purelibdir C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages --python.platlibdir C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages

But then:

FileNotFoundError: [WinError 3] The system cannot find the path specified: 'C:\structure\code\scikit-image\.mesonpy-native-file.ini'

Why does part of this process think that you're working in C:\structure\code\hslh_scikit-image and then part of it is trying to deal with files in C:\structure\code\scikit-image without the hslh_ ?

haesleinhuepf commented 1 year ago

Why does part of this process think that you're working in C:\structure\code\hslhscikit-image and then part of it is trying to deal with files in C:\structure\code\scikit-image without the hslh ?

Because the pip install -e . -vv command screws up my conda installation and I need to rename the folder to make import skimage throw no errors.

When naming the folder scikit-image the error becomes different and similar:

(bio39) C:\structure\code\scikit-image>pip install -e . -vv
Using pip 22.3.1 from C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip (python 3.9)
Non-user install because site-packages writeable
Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-build-tracker-mocxqgoy
Initialized build tracking at C:\Users\haase\AppData\Local\Temp\pip-build-tracker-mocxqgoy
Created build tracker: C:\Users\haase\AppData\Local\Temp\pip-build-tracker-mocxqgoy
Entered build tracker: C:\Users\haase\AppData\Local\Temp\pip-build-tracker-mocxqgoy
Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-install-374e5si4
Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-ephem-wheel-cache-g0fluzg9
Obtaining file:///C:/structure/code/scikit-image
  Added file:///C:/structure/code/scikit-image to build tracker 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-mocxqgoy'
  Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt
  Running command pip subprocess to install build dependencies
  Using pip 22.3.1 from C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages\pip (python 3.9)
  Collecting meson-python@ git+https://github.com/mesonbuild/meson-python@babdf709618fbeeaf59634bc2b4331ca5f7924ce
    Using cached meson_python-0.13.0.dev0-py3-none-any.whl
  Ignoring numpy: markers 'python_version == "3.10" and platform_system == "Windows" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.8" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.10" and platform_system != "Windows" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version == "3.11" and platform_python_implementation != "PyPy"' don't match your environment
  Ignoring numpy: markers 'python_version >= "3.12"' don't match your environment
  Ignoring numpy: markers 'python_version >= "3.8" and platform_python_implementation == "PyPy"' don't match your environment
  Collecting wheel
    Using cached wheel-0.38.4-py3-none-any.whl (36 kB)
  Collecting setuptools<=65.5
    Using cached setuptools-65.5.0-py3-none-any.whl (1.2 MB)
  Collecting packaging
    Using cached packaging-23.0-py3-none-any.whl (42 kB)
  Collecting Cython>=0.29.24
    Using cached Cython-0.29.33-py2.py3-none-any.whl (987 kB)
  Collecting pythran
    Using cached pythran-0.12.1-py3-none-any.whl (4.2 MB)
  Collecting lazy_loader>=0.1
    Using cached lazy_loader-0.1-py3-none-any.whl (8.6 kB)
  Collecting numpy==1.21.1
    Using cached numpy-1.21.1-cp39-cp39-win_amd64.whl (14.0 MB)
  Collecting colorama
    Using cached colorama-0.4.6-py2.py3-none-any.whl (25 kB)
  Collecting pyproject-metadata>=0.6.1
    Using cached pyproject_metadata-0.7.1-py3-none-any.whl (7.4 kB)
  Collecting typing-extensions>=3.7.4
    Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
  Collecting meson>=0.63.3
    Using cached meson-1.0.0-py3-none-any.whl (900 kB)
  Collecting tomli>=1.0.0
    Using cached tomli-2.0.1-py3-none-any.whl (12 kB)
  Collecting gast~=0.5.0
    Using cached gast-0.5.3-py3-none-any.whl (19 kB)
  Collecting ply>=3.4
    Using cached ply-3.11-py2.py3-none-any.whl (49 kB)
  Collecting beniget~=0.4.0
    Using cached beniget-0.4.1-py3-none-any.whl (9.4 kB)
  Installing collected packages: ply, wheel, typing-extensions, tomli, setuptools, packaging, numpy, meson, lazy_loader, gast, Cython, colorama, pyproject-metadata, beniget, pythran, meson-python
    Creating C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Scripts
  ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
  tensorflow-intel 2.11.0 requires gast<=0.4.0,>=0.2.1, but you have gast 0.5.3 which is incompatible.
  pyshtools 4.10 requires numpy>=1.22.3, but you have numpy 1.21.1 which is incompatible.
  open3d 0.16.0 requires nbformat==5.5.0, but you have nbformat 5.7.3 which is incompatible.
  napari-clusters-plotter 0.6.0 requires joblib==1.1.0, but you have joblib 1.2.0 which is incompatible.
  finesse 3.0a3 requires control>=0.9, but you have control 0.0.0 which is incompatible.
  devbio-napari 0.8.1 requires numpy>=1.21.4, but you have numpy 1.21.1 which is incompatible.
  Successfully installed Cython-0.29.33 beniget-0.4.1 colorama-0.4.6 gast-0.5.3 lazy_loader-0.1 meson-1.0.0 meson-python-0.13.0.dev0 numpy-1.21.1 packaging-23.0 ply-3.11 pyproject-metadata-0.7.1 pythran-0.12.1 setuptools-65.5.0 tomli-2.0.1 typing-extensions-4.4.0 wheel-0.38.4
  Installing build dependencies ... done
  Running command Checking if build backend supports build_editable
  Checking if build backend supports build_editable ... done
  Running command Getting requirements to build editable
  Getting requirements to build editable ... done
  Running command pip subprocess to install backend dependencies
  Using pip 22.3.1 from C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages\pip (python 3.9)
  Collecting ninja>=1.8.2
    Using cached ninja-1.11.1-py2.py3-none-win_amd64.whl (313 kB)
  Installing collected packages: ninja
    Creating C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\normal\Scripts
  Successfully installed ninja-1.11.1
  Installing backend dependencies ... done
  Created temporary directory: C:\Users\haase\AppData\Local\Temp\pip-modern-metadata-kye979c4
  Running command Preparing editable metadata (pyproject.toml)
  + meson setup --reconfigure --prefix=C:\Users\haase\mambaforge\envs\bio39 C:\structure\code\scikit-image C:\structure\code\scikit-image\.mesonpy\editable\build --native-file=C:\structure\code\scikit-image\.mesonpy-native-file.ini -Ddebug=false -Doptimization=2 --python.purelibdir C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages --python.platlibdir C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages
  The Meson build system
  Version: 1.0.0
  Source dir: C:\structure\code\scikit-image
  Build dir: C:\structure\code\scikit-image\.mesonpy\editable\build
  Build type: native build
  Project name: scikit-image
  Project version: 0.20.0.dev0
  Activating VS 17.4.1
  C compiler for the host machine: cl (msvc 19.34.31933 "Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31933 for x64")
  C linker for the host machine: link link 14.34.31933.0
  C++ compiler for the host machine: cl (msvc 19.34.31933 "Microsoft (R) C/C++ Optimizing Compiler Version 19.34.31933 for x64")
  C++ linker for the host machine: link link 14.34.31933.0
  Host machine cpu family: x86_64
  Host machine cpu: x86_64
  Compiler for C supports arguments -Wno-unused-but-set-variable: NO (cached)
  Compiler for C supports arguments -Wno-unused-function: NO (cached)
  Compiler for C supports arguments -Wno-conversion: NO (cached)
  Compiler for C supports arguments -Wno-misleading-indentation: NO (cached)
  Compiler for C supports arguments -Wno-incompatible-pointer-types: NO (cached)
  Library m found: NO
  Checking if "-Wl,--version-script" : links: NO (cached)
  Program cython found: YES (C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Scripts\cython.EXE)
  Program pythran found: YES (C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Scripts\pythran.EXE)
  Program cp found: YES (C:\Users\haase\mambaforge\Library\usr\bin\cp.EXE)
  Program python found: YES (C:\Users\haase\mambaforge\envs\bio39\python.exe)
  Program _build_utils/cythoner.py found: YES (python C:\structure\code\scikit-image\skimage\_build_utils/cythoner.py)
  Compiler for C++ supports arguments -Wno-cpp: NO
  Compiler for C supports arguments -Wno-unused-but-set-variable: NO (cached)
  Build targets in project: 58

  scikit-image 0.20.0.dev0

    User defined options
      Native files     : C:\structure\code\scikit-image\.mesonpy-native-file.ini
      debug            : false
      optimization     : 2
      prefix           : C:\Users\haase\mambaforge\envs\bio39
      python.platlibdir: C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages
      python.purelibdir: C:\Users\haase\mambaforge\envs\bio39\Lib\site-packages

  Found ninja.EXE-1.11.1.git.kitware.jobserver-1 at C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\normal\Scripts\ninja.EXE

  Visual Studio environment is needed to run Ninja. It is recommended to use Meson wrapper:
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Scripts\meson compile -C .
  + meson compile
  [1/152] Compiling C object skimage/_shared/interpolation.cp39-win_amd64.pyd.p/meson-generated_interpolation.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  [2/152] Compiling C object skimage/_shared/transform.cp39-win_amd64.pyd.p/meson-generated_transform.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  [3/152] Compiling C object skimage/_shared/fast_exp.cp39-win_amd64.pyd.p/meson-generated_fast_exp.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  [4/152] Linking target skimage/_shared/transform.cp39-win_amd64.pyd
     Creating library skimage\_shared\transform.cp39-win_amd64.lib and object skimage\_shared\transform.cp39-win_amd64.exp
  [5/152] Linking target skimage/_shared/fast_exp.cp39-win_amd64.pyd
     Creating library skimage\_shared\fast_exp.cp39-win_amd64.lib and object skimage\_shared\fast_exp.cp39-win_amd64.exp
  [6/152] Linking target skimage/_shared/interpolation.cp39-win_amd64.pyd
     Creating library skimage\_shared\interpolation.cp39-win_amd64.lib and object skimage\_shared\interpolation.cp39-win_amd64.exp
  [7/152] Compiling C object skimage/_shared/geometry.cp39-win_amd64.pyd.p/meson-generated_geometry.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  skimage/_shared/geometry.cp39-win_amd64.pyd.p/geometry.c(2626): warning C4305: '=': truncation from 'double' to '__pyx_t_5numpy_float32_t'
  [8/152] Linking target skimage/_shared/geometry.cp39-win_amd64.pyd
     Creating library skimage\_shared\geometry.cp39-win_amd64.lib and object skimage\_shared\geometry.cp39-win_amd64.exp
  [9/152] Compiling C object skimage/feature/_hoghistogram.cp39-win_amd64.pyd.p/meson-generated__hoghistogram.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  [10/152] Compiling C object skimage/feature/censure_cy.cp39-win_amd64.pyd.p/meson-generated_censure_cy.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  [11/152] Compiling C object skimage/feature/orb_cy.cp39-win_amd64.pyd.p/meson-generated_orb_cy.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  [12/152] Compiling C object skimage/feature/_sift.cp39-win_amd64.pyd.p/meson-generated__sift.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  skimage/feature/_sift.cp39-win_amd64.pyd.p/_sift.c(3501): warning C4305: '=': truncation from 'double' to '__pyx_t_5numpy_float32_t'
  [13/152] Linking target skimage/feature/censure_cy.cp39-win_amd64.pyd
     Creating library skimage\feature\censure_cy.cp39-win_amd64.lib and object skimage\feature\censure_cy.cp39-win_amd64.exp

  [14/152] Linking target skimage/feature/_sift.cp39-win_amd64.pyd
     Creating library skimage\feature\_sift.cp39-win_amd64.lib and object skimage\feature\_sift.cp39-win_amd64.exp
  [15/152] Linking target skimage/feature/orb_cy.cp39-win_amd64.pyd
     Creating library skimage\feature\orb_cy.cp39-win_amd64.lib and object skimage\feature\orb_cy.cp39-win_amd64.exp
  [16/152] Compiling C object skimage/filters/_multiotsu.cp39-win_amd64.pyd.p/meson-generated__multiotsu.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  [17/152] Linking target skimage/filters/_multiotsu.cp39-win_amd64.pyd
     Creating library skimage\filters\_multiotsu.cp39-win_amd64.lib and object skimage\filters\_multiotsu.cp39-win_amd64.exp
  [18/152] Linking target skimage/feature/_hoghistogram.cp39-win_amd64.pyd
     Creating library skimage\feature\_hoghistogram.cp39-win_amd64.lib and object skimage\feature\_hoghistogram.cp39-win_amd64.exp
  [19/152] Compiling C object skimage/feature/corner_cy.cp39-win_amd64.pyd.p/meson-generated_corner_cy.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  skimage/feature/corner_cy.cp39-win_amd64.pyd.p/corner_cy.c(3829): warning C4056: overflow in floating-point constant arithmetic
  C:\structure\code\scikit-image\.mesonpy\editable\build\skimage\feature\corner_cy.cp39-win_amd64.pyd.p\corner_cy.c(3829) : warning C4756: overflow in constant arithmetic
  [20/152] Linking target skimage/feature/corner_cy.cp39-win_amd64.pyd
     Creating library skimage\feature\corner_cy.cp39-win_amd64.lib and object skimage\feature\corner_cy.cp39-win_amd64.exp
  [21/152] Compiling C object skimage/feature/_canny_cy.cp39-win_amd64.pyd.p/meson-generated__canny_cy.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  skimage/feature/_canny_cy.cp39-win_amd64.pyd.p/_canny_cy.c(3531): warning C4305: '=': truncation from 'double' to 'float'
  skimage/feature/_canny_cy.cp39-win_amd64.pyd.p/_canny_cy.c(4519): warning C4305: '=': truncation from 'double' to 'float'
  [22/152] Linking target skimage/feature/_canny_cy.cp39-win_amd64.pyd
     Creating library skimage\feature\_canny_cy.cp39-win_amd64.lib and object skimage\feature\_canny_cy.cp39-win_amd64.exp

  [23/152] Compiling C object skimage/filters/rank/bilateral_cy.cp39-win_amd64.pyd.p/meson-generated_bilateral_cy.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  [24/152] Linking target skimage/filters/rank/bilateral_cy.cp39-win_amd64.pyd
     Creating library skimage\filters\rank\bilateral_cy.cp39-win_amd64.lib and object skimage\filters\rank\bilateral_cy.cp39-win_amd64.exp
  [25/152] Compiling C object skimage/draw/_draw.cp39-win_amd64.pyd.p/meson-generated__draw.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(6732): warning C4244: 'function': conversion from 'Py_ssize_t' to 'double', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(9230): warning C4244: '=': conversion from 'Py_ssize_t' to '__pyx_t_5numpy_float64_t', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(9239): warning C4244: '=': conversion from 'Py_ssize_t' to '__pyx_t_5numpy_float64_t', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(9248): warning C4244: '=': conversion from 'Py_ssize_t' to '__pyx_t_5numpy_float64_t', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(9257): warning C4244: '=': conversion from 'Py_ssize_t' to '__pyx_t_5numpy_float64_t', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(9266): warning C4244: '=': conversion from 'Py_ssize_t' to '__pyx_t_5numpy_float64_t', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(9275): warning C4244: '=': conversion from 'Py_ssize_t' to '__pyx_t_5numpy_float64_t', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(10536): warning C4244: '=': conversion from 'Py_ssize_t' to '__pyx_t_5numpy_float64_t', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(10545): warning C4244: '=': conversion from 'Py_ssize_t' to '__pyx_t_5numpy_float64_t', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(10676): warning C4244: 'function': conversion from 'Py_ssize_t' to 'double', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(11017): warning C4244: 'function': conversion from 'Py_ssize_t' to 'double', possible loss of data
  skimage/draw/_draw.cp39-win_amd64.pyd.p/_draw.c(11065): warning C4244: 'function': conversion from 'Py_ssize_t' to 'double', possible loss of data
  [26/152] Linking target skimage/draw/_draw.cp39-win_amd64.pyd
     Creating library skimage\draw\_draw.cp39-win_amd64.lib and object skimage\draw\_draw.cp39-win_amd64.exp
  [27/152] Compiling C++ object skimage/feature/_cascade.cp39-win_amd64.pyd.p/meson-generated__cascade.cpp.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  skimage/feature/_cascade.cp39-win_amd64.pyd.p/_cascade.cpp(3988): warning C4244: '=': conversion from 'Py_ssize_t' to '__pyx_t_5numpy_float32_t', possible loss of data
  skimage/feature/_cascade.cp39-win_amd64.pyd.p/_cascade.cpp(4030): warning C4244: '=': conversion from 'int' to '__pyx_t_5numpy_float32_t', possible loss of data
  skimage/feature/_cascade.cp39-win_amd64.pyd.p/_cascade.cpp(4039): warning C4244: '=': conversion from 'int' to '__pyx_t_5numpy_float32_t', possible loss of data
  C:\structure\code\scikit-image\.mesonpy\editable\build\skimage\feature\_cascade.cp39-win_amd64.pyd.p\_cascade.cpp(6080) : warning C4700: uninitialized local variable '__pyx_t_15' used
  [28/152] Linking target skimage/feature/_cascade.cp39-win_amd64.pyd
     Creating library skimage\feature\_cascade.cp39-win_amd64.lib and object skimage\feature\_cascade.cp39-win_amd64.exp
  [29/152] Compiling C object skimage/feature/_texture.cp39-win_amd64.pyd.p/meson-generated__texture.c.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  skimage/feature/_texture.cp39-win_amd64.pyd.p/_texture.c(8907): warning C4244: '=': conversion from 'Py_ssize_t' to '__pyx_t_5numpy_float64_t', possible loss of data
  [30/152] Linking target skimage/feature/_texture.cp39-win_amd64.pyd
     Creating library skimage\feature\_texture.cp39-win_amd64.lib and object skimage\feature\_texture.cp39-win_amd64.exp
  [31/152] Compiling C++ object skimage/feature/_haar.cp39-win_amd64.pyd.p/meson-generated__haar.cpp.obj
  C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include\numpy\npy_1_7_deprecated_api.h(14) : Warning Msg: Using deprecated NumPy API, disable it with #define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION
  [32/152] Linking target skimage/feature/_haar.cp39-win_amd64.pyd
     Creating library skimage\feature\_haar.cp39-win_amd64.lib and object skimage\feature\_haar.cp39-win_amd64.exp

  [33/152] Generating skimage/morphology/_skeletonize_3d_cy with a custom command
  [34/152] Generating skimage/feature/_hessian_det_appx_pythran with a custom command
  [35/152] Compiling C++ object skimage/feature/_hessian_det_appx.cp39-win_amd64.pyd.p/meson-generated_..__hessian_det_appx.cpp.obj
  FAILED: skimage/feature/_hessian_det_appx.cp39-win_amd64.pyd.p/meson-generated_..__hessian_det_appx.cpp.obj
  "cl" "-Iskimage\feature\_hessian_det_appx.cp39-win_amd64.pyd.p" "-Iskimage\feature" "-I..\..\..\skimage\feature" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\pythran" "-IC:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\overlay\Lib\site-packages\numpy\core\include" "-IC:\Users\haase\mambaforge\envs\bio39\Include" "/MD" "/nologo" "/showIncludes" "/utf-8" "/Zc:__cplusplus" "/W2" "/EHsc" "/std:c++14" "/permissive-" "/O2" "-Wno-unused-function" "-Wno-unused-variable" "-Wno-deprecated-declarations" "-Wno-cpp" "-Wno-int-in-bool-context" "-DENABLE_PYTHON_MODULE" "-D__PYTHRAN__=3" "-DPYTHRAN_BLAS_NONE" "/Fdskimage\feature\_hessian_det_appx.cp39-win_amd64.pyd.p\meson-generated_..__hessian_det_appx.cpp.pdb" /Foskimage/feature/_hessian_det_appx.cp39-win_amd64.pyd.p/meson-generated_..__hessian_det_appx.cpp.obj "/c" skimage/feature/_hessian_det_appx.cpp
  cl : Command line error D8021 : invalid numeric argument '/Wno-unused-function'
  [36/152] Generating 'skimage\\io\\_plugins\\_histograms.cp39-win_amd64.pyd.p\\_histograms.c'.
  [37/152] Generating 'skimage\\io\\_plugins\\_colormixer.cp39-win_amd64.pyd.p\\_colormixer.c'.
  [38/152] Generating 'skimage\\graph\\heap.cp39-win_amd64.pyd.p\\heap.c'.
  [39/152] Generating 'skimage\\measure\\_ccomp.cp39-win_amd64.pyd.p\\_ccomp.c'.
  [40/152] Generating skimage/feature/_brief_pythran with a custom command
  [41/152] Generating 'skimage\\graph\\_ncut_cy.cp39-win_amd64.pyd.p\\_ncut_cy.c'.
  [42/152] Generating 'skimage\\graph\\_spath.cp39-win_amd64.pyd.p\\_spath.c'.
  [43/152] Generating 'skimage\\measure\\_find_contours_cy.cp39-win_amd64.pyd.p\\_find_contours_cy.c'.
  [44/152] Generating 'skimage\\graph\\_mcp.cp39-win_amd64.pyd.p\\_mcp.c'.
  [45/152] Generating 'skimage\\filters\\rank\\core_cy_3d.cp39-win_amd64.pyd.p\\core_cy_3d.c'.
  [46/152] Generating 'skimage\\measure\\_pnpoly.cp39-win_amd64.pyd.p\\_pnpoly.c'.
  [47/152] Generating 'skimage\\measure\\_moments_cy.cp39-win_amd64.pyd.p\\_moments_cy.c'.
  [48/152] Generating 'skimage\\morphology\\_convex_hull.cp39-win_amd64.pyd.p\\_convex_hull.c'.
  [49/152] Generating 'skimage\\filters\\rank\\core_cy.cp39-win_amd64.pyd.p\\core_cy.c'.
  [50/152] Generating 'skimage\\measure\\_marching_cubes_lewiner_cy.cp39-win_amd64.pyd.p\\_marching_cubes_lewiner_cy.c'.
  [51/152] Generating 'skimage\\filters\\rank\\percentile_cy.cp39-win_amd64.pyd.p\\percentile_cy.c'.
  [52/152] Generating 'skimage\\filters\\rank\\generic_cy.cp39-win_amd64.pyd.p\\generic_cy.c'.
  ninja: build stopped: subcommand failed.
  Activating VS 17.4.1
  INFO: automatically activated MSVC compiler environment
  INFO: autodetecting backend as ninja
  INFO: calculating backend command to run: C:\Users\haase\AppData\Local\Temp\pip-build-env-p9uk3fvt\normal\Scripts\ninja.EXE
  error: subprocess-exited-with-error

  × Preparing editable metadata (pyproject.toml) did not run successfully.
  │ exit code: 1
  ╰─> See above for output.

  note: This error originates from a subprocess, and is likely not a problem with pip.
  full command: 'C:\Users\haase\mambaforge\envs\bio39\python.exe' 'C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_vendor\pep517\in_process\_in_process.py' prepare_metadata_for_build_editable 'C:\Users\haase\AppData\Local\Temp\tmpq46_08ly'
  cwd: C:\structure\code\scikit-image
  Preparing editable metadata (pyproject.toml) ... error
error: metadata-generation-failed

× Encountered error while generating package metadata.
╰─> See above for output.

note: This is an issue with the package mentioned above, not pip.
hint: See above for details.
Exception information:
Traceback (most recent call last):
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\build\metadata_editable.py", line 37, in generate_editable_metadata
    distinfo_dir = backend.prepare_metadata_for_build_editable(metadata_dir)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\utils\misc.py", line 719, in prepare_metadata_for_build_editable
    return super().prepare_metadata_for_build_editable(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_vendor\pep517\wrappers.py", line 242, in prepare_metadata_for_build_editable
    return self._call_hook('prepare_metadata_for_build_editable', {
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_vendor\pep517\wrappers.py", line 309, in _call_hook
    self._subprocess_runner(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\utils\subprocess.py", line 252, in runner
    call_subprocess(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\utils\subprocess.py", line 224, in call_subprocess
    raise error
pip._internal.exceptions.InstallationSubprocessError: Preparing editable metadata (pyproject.toml) exited with 1

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\cli\base_command.py", line 160, in exc_logging_wrapper
    status = run_func(*args)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\cli\req_command.py", line 247, in wrapper
    return func(self, options, args)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\commands\install.py", line 400, in run
    requirement_set = resolver.resolve(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\resolver.py", line 73, in resolve
    collected = self.factory.collect_root_requirements(root_reqs)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 491, in collect_root_requirements
    req = self._make_requirement_from_install_req(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 453, in _make_requirement_from_install_req
    cand = self._make_candidate_from_link(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\factory.py", line 185, in _make_candidate_from_link
    self._editable_candidate_cache[link] = EditableCandidate(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 322, in __init__
    super().__init__(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 162, in __init__
    self.dist = self._prepare()
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 231, in _prepare
    dist = self._prepare_distribution()
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\resolution\resolvelib\candidates.py", line 332, in _prepare_distribution
    return self._factory.preparer.prepare_editable_requirement(self._ireq)
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\prepare.py", line 633, in prepare_editable_requirement
    dist = _get_prepared_distribution(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\prepare.py", line 69, in _get_prepared_distribution
    abstract_dist.prepare_distribution_metadata(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\distributions\sdist.py", line 61, in prepare_distribution_metadata
    self.req.prepare_metadata()
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\req\req_install.py", line 529, in prepare_metadata
    self.metadata_directory = generate_editable_metadata(
  File "C:\Users\haase\mambaforge\envs\bio39\lib\site-packages\pip\_internal\operations\build\metadata_editable.py", line 39, in generate_editable_metadata
    raise MetadataGenerationFailed(package_details=details) from error
pip._internal.exceptions.MetadataGenerationFailed: metadata generation failed
Remote version of pip: 23.0
Local version of pip:  22.3.1
Was pip installed by pip? False
Removed file:///C:/structure/code/scikit-image from build tracker 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-mocxqgoy'
Removed build tracker: 'C:\\Users\\haase\\AppData\\Local\\Temp\\pip-build-tracker-mocxqgoy'
stefanv commented 1 year ago

I'm working on getting SSH access to a Windows machine so I can debug; thanks for your patience.

stefanv commented 1 year ago

This should be fixed by https://github.com/scientific-python/devpy/pull/43

eli-schwartz commented 1 year ago

Because the pip install -e . -vv command screws up my conda installation and I need to rename the folder to make import skimage throw no errors.

Unfortunately Meson doesn't guarantee you can rename the folder and have an existing build keep working, so it's... best... to wipe and reconfigure.

I'm not sure how meson-python handles that.

When naming the folder scikit-image the error becomes different and similar:

Well, the traceback from pip is the same, but the traceback is also just saying "ultimately, we discovered that the meson build backend hook exited with a failure".

The meson failure is very different, and back to being similar to the original error you reported in the first post. Which is good news. The previous fix for /Wno-cpp can be emulated and repeated to also fix /Wno-unused-function.