Closed jasper-tms closed 1 year ago
Thanks for the heads up — I was about to run down this path myself. I think that there are going to be a few places where M1 Macs have installation problems. Cloudvolume has a few issues in some of its requirements, for example, which we discussed here: https://github.com/seung-lab/cloud-volume/issues/570. I'm confused where it's getting git+https for the cloudvolume download, though — the requirements don't have that (and it was a pretty narrow window a while ago when that was needed).
Will suggested (probably correctly) using a Rosetta-based terminal to do the intel emulation for a modest performance hit.
Okay, I just got it to install on my new M1 MacBook Pro running OS X 13.0.2, after first installing CloudVolume after going through the workarounds found in the link above and then installing pytables with Conda (conda install tables
), and then doing a pip install of the current master branch of meshparty.
what it looks like it is that its going back in time to older and older meshparty versions, and eventually finding a very early one where we forgot the requirements.txt file in the manifest. I don't see why its rejecting all the newer versions of meshparty though.
Looks like this issue has its root in vtk. pip install vtk
doesn't work on python3.8 M1, and vtk is a prerequisite for meshparty.
(fanc3.8) [22:09:30]Jaspers-MacBook-Pro-2020:~/Desktop$ pip install vtk
ERROR: Could not find a version that satisfies the requirement vtk (from versions: none)
ERROR: No matching distribution found for vtk
pip install vtk
works in a python3.9 environment. Indeed the full pip install meshparty
from a clean M1 python3.9 virtualenv almost works. For me, the only other prerequisite with a wrinkle was tables
. (I didn't have to do any workarounds to get cloudvolume to install.) You installed tables
through conda
Casey, but the conda-free solution for me was brew install hdf5
and then HDF5_DIR=/opt/homebrew/opt/hdf5 pip install meshparty
.
So, meshparty will not install on M1 architecture python3.8, unless users want to build vtk from source themselves. I tried building vtk and it crashed with some error that I decided wasn't worth my time to investigate.
There may also be other packages that prevent meshparty install from succeeding with M1 python3.8, but vtk is the first order issue and would need to be solved before seeing whether there are other issues after it.
For now, problem solved: use python3.9
thanks for documenting this Jasper!
Agreed, thank you — I think this speaks to a need we’ve discussed before to split out some of the functionality and in particular to make VTK an optional install. It’s always been a more challenging requirement and unnecessary for many applications.
On Sat, Dec 3, 2022 at 1:57 PM Forrest Collman @.***> wrote:
thanks for documenting this Jasper!
— Reply to this email directly, view it on GitHub https://github.com/sdorkenw/MeshParty/issues/84#issuecomment-1336265491, or unsubscribe https://github.com/notifications/unsubscribe-auth/AADGK5G32EHUFXNJ6Y4WD73WLO65JANCNFSM6AAAAAASQEYAZM . You are receiving this because you commented.Message ID: @.***>
Something is going wrong when trying to install meshparty. I'm still investigating, but I figured I'd start an issue for the usual reasons – in case someone else knows what's happening and can help me, in case this discussion helps identify a bug, or in case the process of me finding a solution helps someone in the future.
pip install meshparty
fails on:Note that I can get
pip install meshparty
to succeed if I usebrew
inx86_64
compatibility mode to install python3.7 via the commandarch -x86_64 brew install python@3.7
and then make a virtualenv with that python. (If I try to install python3.7 without thearch -x86_64
prefix, brew errors out with "python@3.7: The x86_64 architecture is required for this software. Error: python@3.7: An unsatisfied requirement failed this build.") So the failure appears to be specific to either M1 architecture or python3.8.Large wall of text below (sorry) showing the failed installs:
Something is confusing pip and making it try to go fetch older versions of meshparty. The actual error at the end about not finding requirements.txt doesn't seem relevant since it's something only present in a really old meshparty. Not sure why pip is getting confused.
Now for an even larger wall of text by adding
-v
:I haven't had time to look through this output terribly closely, but at a glance, nothing jumps out at me.
Doing
pip install numpy
beforepip install meshparty
doesn't help. (I know some packages require this.)Any ideas?