You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I'm attempting to install devbio-napari on a Mac M1. I do have rosetta installed and there everything works great. I'm failing to setup an environment using the arm64 architecture.
I followed the instructions here and use this command to setup an environment:
I can confirm same error using arm64 miniforge3 and fresh env.
This seems like a conda/conda-forge issue.
Not sure why it's looking for linux? Maybe @goanpeca has some ideas?
Executing the query devbio-napari
conda-forge/osx-arm64 @ 2.0MB/s 1.8s
conda-forge/noarch @ 2.5MB/s 3.9s
Name Version Build Channel
───────────────────────────────────────────────────────────
devbio-napari 0.7.0 linux_h41d4057_0 conda-forge/noarch
devbio-napari 0.7.0 osx_hd1c38e8_0 conda-forge/noarch
devbio-napari 0.7.0 win_h08f2357_0 conda-forge/noarch
Also, I don't get how it's noarch and yet has architectures...
Yep, that's the conclusion I reached too. We are using noarch packages with __virtual dependencies per OS to implement conditional dependencies. However, the OSX tree is not satisfied (as you saw with platymatch), so the solver sees a conflict for the preferred OSX variant. Then it tries with the other variants, which also conflict because of the __linux and __win dependencies. However, these are "simpler" (shallower, just one leaf) than the platymatch tree, and I guess the simpler conflict is reported.
Log details:
info libsolv ANALYZE UNSOLVABLE ----------------------
info libsolv JOB Rule #231328:
info libsolv devbio-napari-0.7.0-linux_h41d4057_0 [60296] (w1) Conflict.level1
info libsolv devbio-napari-0.7.0-osx_hd1c38e8_0 [60297] (w2) Conflict.level1
info libsolv devbio-napari-0.7.0-win_h08f2357_0 [60298] Conflict.level1
info libsolv next rules: 0 0
info libsolv Rule #68522:
info libsolv !devbio-napari-0.7.0-osx_hd1c38e8_0 [60297] (w1) Conflict.level1
info libsolv platymatch-0.0.3-pyhd8ed1ab_0 [96902] (w2) Conflict.level1
info libsolv next rules: 68523 68576
info libsolv Rule #68542:
info libsolv !devbio-napari-0.7.0-linux_h41d4057_0 [60296] (w1) Conflict.level1
info libsolv next rules: 0 0
info libsolv Rule #68432:
info libsolv !devbio-napari-0.7.0-win_h08f2357_0 [60298] (w1) Conflict.level1
info libsolv next rules: 0 0
info libsolv Rule #23740:
info libsolv !platymatch-0.0.3-pyhd8ed1ab_0 [96902] (w1) Conflict.level1
info libsolv next rules: 0 0
info libsolv enabledisablelearntrules called
I am fixing 2.2.0 for libsimpleitk, which takes 2h to build or so, apparently. I also closed the arm64 migration PR, so the bot will realize at some point that it can actually migrate simpleitk itself. So at some point we will have 2.2.0 ready and hopefully a green PR for arm64. Now we wait :)
Reacted by Kevin Yamauchi, Peter Sobolewski, Robert Haase and Till Korten
Ok the (lib)simpleitk 2.2.x depends on itk 5.3, not yet released on conda-forge (it's in RC state, so maybe soon), so I am going to focus on the 2.1.x series. In this case, libsimpleitk is available, but the Python bindings (simpleitk) fail on Windows. It could be a trivial fix or something else; we'll see.
@haesleinhuepf Maybe pycle-prototype on conda-forge should also include that ocl-wrapper? Want me to open an issue there?
With conda-forge/devbio-napari-feedstock#17, we tried to make installing the platform-specifc openCL wrapper automatic for napari-devbio. Perhaps one could do the same in pyclesperanto-prototype?
This makes sense to me, after all i don't think devbio-napari per se requires the wrapper right? Isnt just the pycle-prototype stuff that uses pyopencl? So it makes sense for it to pull in the wrapper, not devbio, which is one level above so to speak.
Correct @psobolewskiPhD . Actually, it might make sense to install the wrapper together with pyopencl. We may also let the redlionfish people know about this modification. They also depend directly on pyopencl
Good news! imagecodecs-lite migration merged: conda-forge/imagecodecs-lite-feedstock#15
and...
while installing still takes a bit of time, devbio-napari appears fully functional on my M1 with: mamba create --name test-env2 python=3.9 devbio-napari
I think there's a pathway to adding it back though (see here). I'm a cellpose fan, so I think adding the -c pytorch to the suggested installation command is worth it.
Good news! imagecodecs-lite migration merged: conda-forge/imagecodecs-lite-feedstock#15 and... while installing still takes a bit of time, devbio-napari appears fully functional on my M1 with: mamba create --name test-env2 python=3.9 devbio-napari
@psobolewskiPhD , am I understanding correctly that the current devbio-napari is now installing correctly on your M1 Mac (:tada:)? If so, I think we can close this issue.
On a related note, thank you for all of your work to make the scientific python easily installable on M1/M2 macs, @psobolewskiPhD ! I've seen you making fixes and helping people all over the place. Amazing!
@psobolewskiPhD , am I understanding correctly that the current devbio-napari is now installing correctly on your M1 Mac (🎉)? If so, I think we can close this issue.
Correct @psobolewskiPhD . Actually, it might make sense to install the wrapper together with pyopencl. We may also let the redlionfish people know about this modification. They also depend directly on pyopencl
Activity
psobolewskiPhD commentedon Oct 2, 2022
I can confirm same error using arm64 miniforge3 and fresh env.
This seems like a conda/conda-forge issue.
Not sure why it's looking for linux? Maybe @goanpeca has some ideas?
Also, I don't get how it's
noarchand yet has architectures...haesleinhuepf commentedon Oct 2, 2022
Thanks for the feedback Peter!
Ok, then it might be related to:
CC @kevinyamauchi @jaimergp
jaimergp commentedon Oct 2, 2022
should work. I'll see why it's pulling
__linuxthough.psobolewskiPhD commentedon Oct 2, 2022
Alas, looks like a depend isn't arm64 yet:
psobolewskiPhD commentedon Oct 2, 2022
I'll make a PR to add it to the migrator like I did for
redlionfishDone: conda-forge/conda-forge-pinning-feedstock#3480
jaimergp commentedon Oct 2, 2022
Yep, that's the conclusion I reached too. We are using
noarchpackages with__virtualdependencies per OS to implement conditional dependencies. However, the OSX tree is not satisfied (as you saw withplatymatch), so the solver sees a conflict for the preferred OSX variant. Then it tries with the other variants, which also conflict because of the__linuxand__windependencies. However, these are "simpler" (shallower, just one leaf) than theplatymatchtree, and I guess the simpler conflict is reported.Log details:
jaimergp commentedon Oct 2, 2022
Fingers crossed for simpleitk. It hasn't received much attention in a while, apparently.
psobolewskiPhD commentedon Oct 2, 2022
The ITK devs are active on GitHub, but maybe not following the feedstock repo carefully?
Maybe a case for pinging them on their repo: https://github.com/InsightSoftwareConsortium/SimpleITK
Or maybe their forums?
https://discourse.itk.org
Edit: Once the migrator makes the PR obviously.
jaimergp commentedon Oct 2, 2022
Huh, it depends on
libsimpleitk, in the same situation :DpsobolewskiPhD commentedon Oct 2, 2022
Oddly, that one does have arm64 binaries:
I guess it was manually migrated by the devs?
jaimergp commentedon Oct 2, 2022
o.o Then that PR should have been closed because the bot doesn't know otherwise :(
jaimergp commentedon Oct 2, 2022
I am fixing 2.2.0 for libsimpleitk, which takes 2h to build or so, apparently. I also closed the arm64 migration PR, so the bot will realize at some point that it can actually migrate
simpleitkitself. So at some point we will have 2.2.0 ready and hopefully a green PR for arm64. Now we wait :)kevinyamauchi commentedon Oct 2, 2022
Nice sleuthing. Thanks, @psobolewskiPhD and @jaimergp !
jaimergp commentedon Oct 2, 2022
Ok the
(lib)simpleitk2.2.x depends onitk5.3, not yet released on conda-forge (it's in RC state, so maybe soon), so I am going to focus on the 2.1.x series. In this case,libsimpleitkis available, but the Python bindings (simpleitk) fail on Windows. It could be a trivial fix or something else; we'll see.I'll keep you posted!
psobolewskiPhD commentedon Oct 2, 2022
The arm64 bot has made the PR for
simpleitk:conda-forge/simpleitk-feedstock#26
so there's progress!
Thanks for all your efforts Jaime! ❤️
31 remaining items
kevinyamauchi commentedon Oct 7, 2022
Thanks, @psobolewskiPhD . You're a hero!
psobolewskiPhD commentedon Oct 7, 2022
This makes sense to me, after all i don't think devbio-napari per se requires the wrapper right? Isnt just the pycle-prototype stuff that uses pyopencl? So it makes sense for it to pull in the wrapper, not devbio, which is one level above so to speak.
haesleinhuepf commentedon Oct 7, 2022
Correct @psobolewskiPhD . Actually, it might make sense to install the wrapper together with pyopencl. We may also let the redlionfish people know about this modification. They also depend directly on pyopencl
psobolewskiPhD commentedon Oct 7, 2022
Pyopencl dropped the wrapper, seemingly intentionally, so I think it's up to you for your package.
RedLionFish includes it on Linux only, so it seems worth it to bring it up there too:
https://github.com/conda-forge/redlionfish-feedstock/blob/dc2b973c7b5fa761787aebabe7224fa59b3c9959/recipe/meta.yaml#L25-L31
Edit: At some point I have to try and see if
poclvs the apple-wrapper makes a difference.haesleinhuepf commentedon Oct 7, 2022
Hint: Don't spend too much time on pocl. It's not a reasonable replacement for a real graphics processing unit, it's just an emulator.
psobolewskiPhD commentedon Oct 7, 2022
If that's the case, then the apple-wrapper needs to be in!
pyopencldocs seem to suggestpoclcan be better than apple drivers:https://documen.tician.de/pyopencl/misc.html#enabling-access-to-cpus-and-gpus-via-py-opencl
but if that's just for CPU, then I really don't get why
pyopencldropped the apple-wrapper in favor of the user choosing. BTW My googling found this old image.sc thread:https://forum.image.sc/t/pyclesperanto-pyopencl-issue-on-mac-m1/63482/3?u=psobolewskiphd
Note Talley's response—we've been down this stream before.
psobolewskiPhD commentedon Oct 8, 2022
Good news!
imagecodecs-litemigration merged:conda-forge/imagecodecs-lite-feedstock#15
and...
while installing still takes a bit of time,
devbio-napariappears fully functional on my M1 with:mamba create --name test-env2 python=3.9 devbio-naparipycle-assistant stuff works, simpleITK stuff works, platymatch works.
No cellpose though?
full conda list:
Details
kevinyamauchi commentedon Oct 8, 2022
Nice work, @psobolewskiPhD !
I believe
cellposewas removed due to some installation issues on Windows: #17psobolewskiPhD commentedon Oct 8, 2022
Ah, so i had it earlier because arm64 was getting old devbio. Now it's up-to-date so no cellpose—quicker install tho!
kevinyamauchi commentedon Oct 8, 2022
I think there's a pathway to adding it back though (see here). I'm a cellpose fan, so I think adding the
-c pytorchto the suggested installation command is worth it.kevinyamauchi commentedon Oct 8, 2022
@psobolewskiPhD , am I understanding correctly that the current
devbio-napariis now installing correctly on your M1 Mac (:tada:)? If so, I think we can close this issue.kevinyamauchi commentedon Oct 8, 2022
On a related note, thank you for all of your work to make the scientific python easily installable on M1/M2 macs, @psobolewskiPhD ! I've seen you making fixes and helping people all over the place. Amazing!
psobolewskiPhD commentedon Oct 8, 2022
Yes sir!

Also, can nuke this part of the README:
I'll make a PR.
kevinyamauchi commentedon Oct 8, 2022
Awesome! 🚀
psobolewskiPhD commentedon Oct 8, 2022
I've made a PR to the RLF feedstock to add the wrapper on osx. Hopefully I didn't mess anything up!
conda-forge/redlionfish-feedstock#11