CAVEconnectome / MeshParty

Apache License 2.0
34 stars 16 forks source link

`pip install meshparty` fails on M1 Mac, python3.8 #84

Closed jasper-tms closed 1 year ago

jasper-tms commented 1 year ago

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 use brew in x86_64 compatibility mode to install python3.7 via the command arch -x86_64 brew install python@3.7 and then make a virtualenv with that python. (If I try to install python3.7 without the arch -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:

[23:34:19]Jaspers-MacBook-Pro-2020:~$ mkvirtualenv -p `which python3.8` meshparty    
created virtual environment CPython3.8.15.final.0-64 in 166ms
  creator CPython3Posix(dest=/Users/jasper/.virtualenvs/meshparty, clear=False, no_vcs_ignore=False, global=False)
  seeder FromAppData(download=False, pip=bundle, setuptools=bundle, wheel=bundle, via=copy, app_data_dir=/Users/jasper/Library/Application Support/virtualenv)
    added seed packages: pip==22.2.2, setuptools==65.3.0, wheel==0.37.1
  activators BashActivator,CShellActivator,FishActivator,NushellActivator,PowerShellActivator,PythonActivator
virtualenvwrapper.user_scripts creating /Users/jasper/.virtualenvs/meshparty/bin/predeactivate
virtualenvwrapper.user_scripts creating /Users/jasper/.virtualenvs/meshparty/bin/postdeactivate
virtualenvwrapper.user_scripts creating /Users/jasper/.virtualenvs/meshparty/bin/preactivate
virtualenvwrapper.user_scripts creating /Users/jasper/.virtualenvs/meshparty/bin/postactivate
virtualenvwrapper.user_scripts creating /Users/jasper/.virtualenvs/meshparty/bin/get_env_details
(meshparty) [23:34:39]Jaspers-MacBook-Pro-2020:~$ pip install --upgrade pip
Requirement already satisfied: pip in ./.virtualenvs/meshparty/lib/python3.8/site-packages (22.2.2)
Collecting pip
  Using cached pip-22.3.1-py3-none-any.whl (2.1 MB)
Installing collected packages: pip
  Attempting uninstall: pip
    Found existing installation: pip 22.2.2
    Uninstalling pip-22.2.2:
      Successfully uninstalled pip-22.2.2
Successfully installed pip-22.3.1

(meshparty) [23:36:17]Jaspers-MacBook-Pro-2020:~$ pip install meshparty   
Collecting meshparty
  Using cached meshparty-1.16.7.tar.gz (114 kB)
  Preparing metadata (setup.py) ... done
Collecting plyfile
  Using cached plyfile-0.7.4-py3-none-any.whl (39 kB)
Collecting h5py
  Using cached h5py-3.7.0-cp38-cp38-macosx_11_0_arm64.whl (2.6 MB)
Collecting numpy
  Using cached numpy-1.23.5-cp38-cp38-macosx_11_0_arm64.whl (13.3 MB)
Collecting scipy>=1.3.0
  Using cached scipy-1.9.3-cp38-cp38-macosx_12_0_arm64.whl (28.5 MB)
Collecting scikit-learn
  Using cached scikit_learn-1.1.3-cp38-cp38-macosx_12_0_arm64.whl (7.6 MB)
Collecting networkx
  Using cached networkx-2.8.8-py3-none-any.whl (2.0 MB)
Collecting multiwrapper
  Using cached multiwrapper-0.1.1.tar.gz (4.9 kB)
  Preparing metadata (setup.py) ... done
Collecting cloud-volume>=1.16.0
  Using cached cloud_volume-8.16.0-py3-none-any.whl (234 kB)
Collecting trimesh>=3.0.14
  Using cached trimesh-3.16.4-py3-none-any.whl (663 kB)
Collecting rtree
  Using cached Rtree-1.0.1-cp38-cp38-macosx_11_0_arm64.whl (814 kB)
Collecting pymeshfix>=0.12.3
  Using cached pymeshfix-0.16.1.tar.gz (1.5 MB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting meshparty
  Using cached meshparty-1.16.6.tar.gz (114 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.16.5.tar.gz (114 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.16.4.tar.gz (114 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.16.3.tar.gz (114 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.16.2.tar.gz (114 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.16.1.tar.gz (114 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.16.0.tar.gz (114 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.15.0.tar.gz (114 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.14.0.tar.gz (109 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.13.2.tar.gz (109 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.13.1.tar.gz (107 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.12.0.tar.gz (108 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.11.0.tar.gz (107 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.10.2.tar.gz (107 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.10.1.tar.gz (107 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.10.0.tar.gz (105 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.8.0.tar.gz (64 kB)
  Preparing metadata (setup.py) ... done
Collecting sklearn
  Using cached sklearn-0.0.post1.tar.gz (3.6 kB)
  Preparing metadata (setup.py) ... done
Collecting cloud-volume==0.65.4
  Using cached cloud_volume-0.65.4-py2.py3-none-any.whl (178 kB)
Collecting pykdtree
  Using cached pykdtree-1.3.6.tar.gz (82 kB)
  Preparing metadata (setup.py) ... done
Collecting meshparty
  Using cached meshparty-1.7.2.tar.gz (62 kB)
  Preparing metadata (setup.py) ... done
Collecting cloud-volume==0.63
  Using cached cloud_volume-0.63.0-py2.py3-none-any.whl (173 kB)
Collecting meshparty
  Using cached meshparty-1.7.1.tar.gz (62 kB)
  Preparing metadata (setup.py) ... done
Collecting cloud-volume==0.62
  Using cached cloud_volume-0.62.0-py2.py3-none-any.whl (173 kB)
Collecting meshparty
  Using cached meshparty-1.7.0.tar.gz (62 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.6.0.tar.gz (380 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.5.0.tar.gz (382 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.4.3.tar.gz (39 kB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.4.1.tar.gz (56.5 MB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.4.0.tar.gz (56.5 MB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.3.0.tar.gz (56.5 MB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.2.0.tar.gz (56.5 MB)
  Preparing metadata (setup.py) ... done
  Using cached meshparty-0.3.4.tar.gz (26 kB)
  Preparing metadata (setup.py) ... done
Collecting pyassimp
  Using cached pyassimp-4.1.4.tar.gz (98 kB)
  Preparing metadata (setup.py) ... done
Collecting meshparty
  Using cached meshparty-0.2.4.tar.gz (21 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [6 lines of output]
      Traceback (most recent call last):
        File "<string>", line 2, in <module>
        File "<pip-setuptools-caller>", line 34, in <module>
        File "/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-install-zxzp_qyr/meshparty_62ea7efe410c498f959d8668f73fc7e8/setup.py", line 23, in <module>
          with open('requirements.txt', 'r') as f:
      FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt'
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
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.

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:

(meshparty) [23:34:51]Jaspers-MacBook-Pro-2020:~$ pip install meshparty -v
Using pip 22.3.1 from /Users/jasper/.virtualenvs/meshparty/lib/python3.8/site-packages/pip (python 3.8)
Collecting meshparty
  Using cached meshparty-1.16.7.tar.gz (114 kB)
  Running command python setup.py egg_info
  ['plyfile', 'h5py', 'numpy', 'scipy>=1.3.0', 'scikit-learn', 'networkx', 'multiwrapper', 'cloud-volume>=1.16.0', 'trimesh>=3.0.14', 'rtree', 'pymeshfix>=0.12.3', 'vtk', 'shapely', 'imageio', 'pandas', 'orjson', 'blosc', 'numba', 'tables', 'dataclasses']
  running egg_info
  creating /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-fxixd1w9/meshparty.egg-info
  writing /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-fxixd1w9/meshparty.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-fxixd1w9/meshparty.egg-info/dependency_links.txt
  writing requirements to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-fxixd1w9/meshparty.egg-info/requires.txt
  writing top-level names to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-fxixd1w9/meshparty.egg-info/top_level.txt
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-fxixd1w9/meshparty.egg-info/SOURCES.txt'
  /Users/jasper/.virtualenvs/meshparty/lib/python3.8/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
    warnings.warn(
  listing git files failed - pretending there aren't any
  reading manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-fxixd1w9/meshparty.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'LICENCE'
  warning: no files found matching 'README.md'
  no previously-included directories found matching 'test*'
  adding license file 'LICENSE'
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-fxixd1w9/meshparty.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done
Collecting plyfile
  Using cached plyfile-0.7.4-py3-none-any.whl (39 kB)
Collecting h5py
  Using cached h5py-3.7.0-cp38-cp38-macosx_11_0_arm64.whl (2.6 MB)
Collecting numpy
  Using cached numpy-1.23.5-cp38-cp38-macosx_11_0_arm64.whl (13.3 MB)
Collecting scipy>=1.3.0
  Using cached scipy-1.9.3-cp38-cp38-macosx_12_0_arm64.whl (28.5 MB)
Collecting scikit-learn
  Using cached scikit_learn-1.1.3-cp38-cp38-macosx_12_0_arm64.whl (7.6 MB)
Collecting networkx
  Using cached networkx-2.8.8-py3-none-any.whl (2.0 MB)
Collecting multiwrapper
  Using cached multiwrapper-0.1.1.tar.gz (4.9 kB)
  Running command python setup.py egg_info
  running egg_info
  creating /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-gjkte37_/multiwrapper.egg-info
  writing /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-gjkte37_/multiwrapper.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-gjkte37_/multiwrapper.egg-info/dependency_links.txt
  writing requirements to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-gjkte37_/multiwrapper.egg-info/requires.txt
  writing top-level names to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-gjkte37_/multiwrapper.egg-info/top_level.txt
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-gjkte37_/multiwrapper.egg-info/SOURCES.txt'
  reading manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-gjkte37_/multiwrapper.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-gjkte37_/multiwrapper.egg-info/SOURCES.txt'
  /Users/jasper/.virtualenvs/meshparty/lib/python3.8/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
    warnings.warn(
  Preparing metadata (setup.py) ... done
Collecting cloud-volume>=1.16.0
  Using cached cloud_volume-8.16.0-py3-none-any.whl (234 kB)
Collecting trimesh>=3.0.14
  Using cached trimesh-3.16.4-py3-none-any.whl (663 kB)
Collecting rtree
  Using cached Rtree-1.0.1-cp38-cp38-macosx_11_0_arm64.whl (814 kB)
Collecting pymeshfix>=0.12.3
  Using cached pymeshfix-0.16.1.tar.gz (1.5 MB)
  Running command pip subprocess to install build dependencies
  Collecting setuptools>=40.6.0
    Using cached setuptools-65.6.3-py3-none-any.whl (1.2 MB)
  Collecting wheel
    Using cached wheel-0.38.4-py3-none-any.whl (36 kB)
  Collecting numpy
    Using cached numpy-1.23.5-cp38-cp38-macosx_11_0_arm64.whl (13.3 MB)
  Collecting cython
    Using cached Cython-0.29.32-py2.py3-none-any.whl (986 kB)
  Installing collected packages: wheel, setuptools, numpy, cython
  Successfully installed cython-0.29.32 numpy-1.23.5 setuptools-65.6.3 wheel-0.38.4
  Installing build dependencies ... done
  Running command Getting requirements to build wheel
  Getting requirements to build wheel ... done
  Running command Preparing metadata (pyproject.toml)
  running dist_info
  creating /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-modern-metadata-2a4k1tvc/pymeshfix.egg-info
  writing /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-modern-metadata-2a4k1tvc/pymeshfix.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-modern-metadata-2a4k1tvc/pymeshfix.egg-info/dependency_links.txt
  writing requirements to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-modern-metadata-2a4k1tvc/pymeshfix.egg-info/requires.txt
  writing top-level names to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-modern-metadata-2a4k1tvc/pymeshfix.egg-info/top_level.txt
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-modern-metadata-2a4k1tvc/pymeshfix.egg-info/SOURCES.txt'
  reading manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-modern-metadata-2a4k1tvc/pymeshfix.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  adding license file 'LICENSE'
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-modern-metadata-2a4k1tvc/pymeshfix.egg-info/SOURCES.txt'
  creating '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-modern-metadata-2a4k1tvc/pymeshfix-0.16.1.dist-info'
  Preparing metadata (pyproject.toml) ... done
Collecting meshparty
  Using cached meshparty-1.16.6.tar.gz (114 kB)
  Running command python setup.py egg_info
  ['plyfile', 'h5py', 'numpy', 'scipy>=1.3.0', 'scikit-learn', 'networkx', 'multiwrapper', 'cloud-volume>=1.16.0', 'trimesh>=3.0.14', 'rtree', 'pymeshfix>=0.12.3', 'vtk', 'shapely', 'imageio', 'pandas', 'orjson', 'blosc', 'numba', 'tables', 'dataclasses']
  running egg_info
  creating /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-bjh083n1/meshparty.egg-info
  writing /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-bjh083n1/meshparty.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-bjh083n1/meshparty.egg-info/dependency_links.txt
  writing requirements to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-bjh083n1/meshparty.egg-info/requires.txt
  writing top-level names to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-bjh083n1/meshparty.egg-info/top_level.txt
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-bjh083n1/meshparty.egg-info/SOURCES.txt'
  /Users/jasper/.virtualenvs/meshparty/lib/python3.8/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
    warnings.warn(
  listing git files failed - pretending there aren't any
  reading manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-bjh083n1/meshparty.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'LICENCE'
  warning: no files found matching 'README.md'
  no previously-included directories found matching 'test*'
  adding license file 'LICENSE'
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-bjh083n1/meshparty.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.16.5.tar.gz (114 kB)
  Running command python setup.py egg_info
  ['plyfile', 'h5py', 'numpy', 'scipy>=1.3.0', 'scikit-learn', 'networkx', 'multiwrapper', 'cloud-volume>=1.16.0', 'trimesh>=3.0.14', 'rtree', 'pymeshfix>=0.12.3', 'vtk', 'shapely', 'imageio', 'pandas', 'orjson', 'blosc', 'numba', 'tables', 'dataclasses']
  running egg_info
  creating /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-139bwz9m/meshparty.egg-info
  writing /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-139bwz9m/meshparty.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-139bwz9m/meshparty.egg-info/dependency_links.txt
  writing requirements to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-139bwz9m/meshparty.egg-info/requires.txt
  writing top-level names to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-139bwz9m/meshparty.egg-info/top_level.txt
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-139bwz9m/meshparty.egg-info/SOURCES.txt'
  /Users/jasper/.virtualenvs/meshparty/lib/python3.8/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
    warnings.warn(
  listing git files failed - pretending there aren't any
  reading manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-139bwz9m/meshparty.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'LICENCE'
  warning: no files found matching 'README.md'
  no previously-included directories found matching 'test*'
  adding license file 'LICENSE'
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-139bwz9m/meshparty.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.16.4.tar.gz (114 kB)
  Running command python setup.py egg_info
  ['plyfile', 'h5py', 'numpy', 'scipy>=1.3.0', 'scikit-learn', 'networkx', 'multiwrapper', 'cloud-volume>=1.16.0', 'trimesh>=3.0.14', 'rtree', 'pymeshfix>=0.12.3', 'vtk', 'shapely', 'imageio', 'pandas', 'orjson', 'blosc', 'numba', 'tables', 'dataclasses']
  running egg_info
  creating /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-phv7zmnt/meshparty.egg-info
  writing /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-phv7zmnt/meshparty.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-phv7zmnt/meshparty.egg-info/dependency_links.txt
  writing requirements to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-phv7zmnt/meshparty.egg-info/requires.txt
  writing top-level names to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-phv7zmnt/meshparty.egg-info/top_level.txt
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-phv7zmnt/meshparty.egg-info/SOURCES.txt'
  /Users/jasper/.virtualenvs/meshparty/lib/python3.8/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
    warnings.warn(
  listing git files failed - pretending there aren't any
  reading manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-phv7zmnt/meshparty.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'LICENCE'
  warning: no files found matching 'README.md'
  no previously-included directories found matching 'test*'
  adding license file 'LICENSE'
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-phv7zmnt/meshparty.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done

...

  Using cached meshparty-1.3.0.tar.gz (56.5 MB)
  Running command python setup.py egg_info
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  ['plyfile', 'h5py', 'numpy', 'scipy>=1.3.0', 'sklearn', 'networkx', 'multiwrapper', 'trimesh', '-e git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume', 'pymeshfix>=0.12.3', 'pykdtree', 'vtk', 'pcst_fast', 'annotationframeworkclient>=0.2.0', 'pyembree', 'shapely', 'imageio']
  running egg_info
  creating /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5c77ufjc/meshparty.egg-info
  writing /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5c77ufjc/meshparty.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5c77ufjc/meshparty.egg-info/dependency_links.txt
  writing requirements to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5c77ufjc/meshparty.egg-info/requires.txt
  writing top-level names to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5c77ufjc/meshparty.egg-info/top_level.txt
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5c77ufjc/meshparty.egg-info/SOURCES.txt'
  /Users/jasper/.virtualenvs/meshparty/lib/python3.8/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
    warnings.warn(
  listing git files failed - pretending there aren't any
  reading manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5c77ufjc/meshparty.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'LICENCE'
  adding license file 'LICENSE'
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5c77ufjc/meshparty.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done
  Using cached meshparty-1.2.0.tar.gz (56.5 MB)
  Running command python setup.py egg_info
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  ['plyfile', 'h5py', 'numpy', 'scipy>=1.3.0', 'sklearn', 'networkx', 'multiwrapper', 'trimesh', '-e git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume', 'pymeshfix>=0.12.3', 'pykdtree', 'vtk', 'pcst_fast', 'annotationframeworkclient>=0.2.0', 'pyembree', 'shapely', 'imageio']
  running egg_info
  creating /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5f6qcadr/meshparty.egg-info
  writing /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5f6qcadr/meshparty.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5f6qcadr/meshparty.egg-info/dependency_links.txt
  writing requirements to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5f6qcadr/meshparty.egg-info/requires.txt
  writing top-level names to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5f6qcadr/meshparty.egg-info/top_level.txt
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5f6qcadr/meshparty.egg-info/SOURCES.txt'
  /Users/jasper/.virtualenvs/meshparty/lib/python3.8/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
    warnings.warn(
  listing git files failed - pretending there aren't any
  reading manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5f6qcadr/meshparty.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  warning: no files found matching 'LICENCE'
  adding license file 'LICENSE'
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-5f6qcadr/meshparty.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done
  Using cached meshparty-0.3.4.tar.gz (26 kB)
  Running command python setup.py egg_info
  WARNING: Cannot look at git URL git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume because it does not support lookup as web pages.
  ['plyfile', 'h5py', 'numpy', 'scipy', 'sklearn', 'networkx', 'multiwrapper', 'trimesh', '-e git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume', 'pyassimp', 'pymeshfix', 'pykdtree', 'vtk', 'pcst_fast']
  ['git+https://github.com/seung-lab/cloud-volume.git@graphene#egg=cloud-volume']
  ['plyfile', 'h5py', 'numpy', 'scipy', 'sklearn', 'networkx', 'multiwrapper', 'trimesh', 'pyassimp', 'pymeshfix', 'pykdtree', 'vtk', 'pcst_fast', 'cloud-volume']
  running egg_info
  creating /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-0ubc1b7c/meshparty.egg-info
  writing /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-0ubc1b7c/meshparty.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-0ubc1b7c/meshparty.egg-info/dependency_links.txt
  writing requirements to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-0ubc1b7c/meshparty.egg-info/requires.txt
  writing top-level names to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-0ubc1b7c/meshparty.egg-info/top_level.txt
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-0ubc1b7c/meshparty.egg-info/SOURCES.txt'
  reading manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-0ubc1b7c/meshparty.egg-info/SOURCES.txt'
  reading manifest template 'MANIFEST.in'
  /Users/jasper/.virtualenvs/meshparty/lib/python3.8/site-packages/setuptools/installer.py:27: SetuptoolsDeprecationWarning: setuptools.installer is deprecated. Requirements should be satisfied by a PEP 517 installer.
    warnings.warn(
  warning: no files found matching 'LICENCE'
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-0ubc1b7c/meshparty.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done
Collecting pyassimp
  Using cached pyassimp-4.1.4.tar.gz (98 kB)
  Running command python setup.py egg_info
  running egg_info
  creating /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-wx34awtm/pyassimp.egg-info
  writing /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-wx34awtm/pyassimp.egg-info/PKG-INFO
  writing dependency_links to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-wx34awtm/pyassimp.egg-info/dependency_links.txt
  writing top-level names to /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-wx34awtm/pyassimp.egg-info/top_level.txt
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-wx34awtm/pyassimp.egg-info/SOURCES.txt'
  reading manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-wx34awtm/pyassimp.egg-info/SOURCES.txt'
  writing manifest file '/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-wx34awtm/pyassimp.egg-info/SOURCES.txt'
  Preparing metadata (setup.py) ... done
Collecting meshparty
  Using cached meshparty-0.2.4.tar.gz (21 kB)
  Running command python setup.py egg_info
  Traceback (most recent call last):
    File "<string>", line 2, in <module>
    File "<pip-setuptools-caller>", line 34, in <module>
    File "/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-install-v59rgb77/meshparty_4b1b2e92c50944199d19d460bbb403d7/setup.py", line 23, in <module>
      with open('requirements.txt', 'r') as f:
  FileNotFoundError: [Errno 2] No such file or directory: 'requirements.txt'
  error: subprocess-exited-with-error

  × python setup.py egg_info 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: /Users/jasper/.virtualenvs/meshparty/bin/python -c '
  exec(compile('"'"''"'"''"'"'
  # This is <pip-setuptools-caller> -- a caller that pip uses to run setup.py
  #
  # - It imports setuptools before invoking setup.py, to enable projects that directly
  #   import from `distutils.core` to work with newer packaging standards.
  # - It provides a clear error message when setuptools is not installed.
  # - It sets `sys.argv[0]` to the underlying `setup.py`, when invoking `setup.py` so
  #   setuptools doesn'"'"'t think the script is `-c`. This avoids the following warning:
  #     manifest_maker: standard file '"'"'-c'"'"' not found".
  # - It generates a shim setup.py, for handling setup.cfg-only projects.
  import os, sys, tokenize

  try:
      import setuptools
  except ImportError as error:
      print(
          "ERROR: Can not execute `setup.py` since setuptools is not available in "
          "the build environment.",
          file=sys.stderr,
      )
      sys.exit(1)

  __file__ = %r
  sys.argv[0] = __file__

  if os.path.exists(__file__):
      filename = __file__
      with tokenize.open(__file__) as f:
          setup_py_code = f.read()
  else:
      filename = "<auto-generated setuptools caller>"
      setup_py_code = "from setuptools import setup; setup()"

  exec(compile(setup_py_code, filename, "exec"))
  '"'"''"'"''"'"' % ('"'"'/private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-install-v59rgb77/meshparty_4b1b2e92c50944199d19d460bbb403d7/setup.py'"'"',), "<pip-setuptools-caller>", "exec"))' egg_info --egg-base /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-pip-egg-info-iuthd45d
  cwd: /private/var/folders/mc/s0ycgh_s5kx66_zjqj8gvb_w0000gn/T/pip-install-v59rgb77/meshparty_4b1b2e92c50944199d19d460bbb403d7/
  Preparing metadata (setup.py) ... 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.

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 before pip install meshparty doesn't help. (I know some packages require this.)

Any ideas?

ceesem commented 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.

ceesem commented 1 year ago

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.

fcollman commented 1 year ago

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.

jasper-tms commented 1 year ago

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

fcollman commented 1 year ago

thanks for documenting this Jasper!

ceesem commented 1 year ago

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: @.***>