mrphys/tensorflow-mri

Provide Windows and Mac wheels

Opened this issue · 5 comments

Currently only Linux wheels are being provided. Set up compilation on Windows and Mac too.

Dear developers,

I see a wheel for MacOSX exists now, although not advertised. I just installed it. Do I miss something? The only problem came from the openEXR library. But it was solved by installing it through homebrew (or Xcode) first.

>/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
>brew install openexr

then it simply worked

(nufft) hank7v@Fabrizios-Mac-mini ~ % pip install tensorflow-mri                                      
Collecting tensorflow-mri
  Using cached tensorflow_mri-0.1.0a2-py3-none-any.whl (10 kB)
Collecting tensorflow>=2.1.0
  Using cached tensorflow-2.11.0-cp39-cp39-macosx_10_14_x86_64.whl (244.3 MB)
Collecting tensorflow-graphics
  Using cached tensorflow_graphics-2021.12.3-py3-none-any.whl (4.3 MB)
Collecting libclang>=13.0.0
  Using cached libclang-14.0.6-py2.py3-none-macosx_10_9_x86_64.whl (13.2 MB)
Collecting flatbuffers>=2.0
  Using cached flatbuffers-22.12.6-py2.py3-none-any.whl (26 kB)
Collecting h5py>=2.9.0
  Using cached h5py-3.7.0-cp39-cp39-macosx_10_9_x86_64.whl (3.2 MB)
Collecting grpcio<2.0,>=1.24.3
  Using cached grpcio-1.51.1-cp39-cp39-macosx_10_10_x86_64.whl (4.6 MB)
Collecting typing-extensions>=3.6.6
  Using cached typing_extensions-4.4.0-py3-none-any.whl (26 kB)
Collecting protobuf<3.20,>=3.9.2
  Using cached protobuf-3.19.6-cp39-cp39-macosx_10_9_x86_64.whl (980 kB)
Collecting tensorboard<2.12,>=2.11
  Using cached tensorboard-2.11.0-py3-none-any.whl (6.0 MB)
Collecting absl-py>=1.0.0
  Using cached absl_py-1.3.0-py3-none-any.whl (124 kB)
Collecting termcolor>=1.1.0
  Using cached termcolor-2.1.1-py3-none-any.whl (6.2 kB)
Collecting astunparse>=1.6.0
  Using cached astunparse-1.6.3-py2.py3-none-any.whl (12 kB)
Collecting opt-einsum>=2.3.2
  Using cached opt_einsum-3.3.0-py3-none-any.whl (65 kB)
Collecting google-pasta>=0.1.1
  Using cached google_pasta-0.2.0-py3-none-any.whl (57 kB)
Collecting gast<=0.4.0,>=0.2.1
  Using cached gast-0.4.0-py3-none-any.whl (9.8 kB)
Collecting six>=1.12.0
  Using cached six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting wrapt>=1.11.0
  Using cached wrapt-1.14.1-cp39-cp39-macosx_10_9_x86_64.whl (35 kB)
Collecting packaging
  Using cached packaging-22.0-py3-none-any.whl (42 kB)
Collecting numpy>=1.20
  Using cached numpy-1.24.0-cp39-cp39-macosx_10_9_x86_64.whl (19.8 MB)
Collecting tensorflow-estimator<2.12,>=2.11.0
  Using cached tensorflow_estimator-2.11.0-py2.py3-none-any.whl (439 kB)
Collecting tensorflow-io-gcs-filesystem>=0.23.1
  Using cached tensorflow_io_gcs_filesystem-0.29.0-cp39-cp39-macosx_10_14_x86_64.whl (1.6 MB)
Collecting keras<2.12,>=2.11.0
  Using cached keras-2.11.0-py2.py3-none-any.whl (1.7 MB)
Requirement already satisfied: setuptools in ./miniconda3/envs/nufft/lib/python3.9/site-packages (from tensorflow>=2.1.0->tensorflow-mri) (65.5.0)
Collecting psutil>=5.7.0
  Using cached psutil-5.9.4-cp36-abi3-macosx_10_9_x86_64.whl (243 kB)
Collecting tensorflow-addons>=0.10.0
  Using cached tensorflow_addons-0.19.0-cp39-cp39-macosx_10_14_x86_64.whl (12.6 MB)
Collecting tqdm>=4.45.0
  Using cached tqdm-4.64.1-py2.py3-none-any.whl (78 kB)
Collecting scipy>=1.1.0
  Using cached scipy-1.9.3-cp39-cp39-macosx_10_9_x86_64.whl (34.3 MB)
Collecting matplotlib>=2.2.5
  Using cached matplotlib-3.6.2-cp39-cp39-macosx_10_12_x86_64.whl (7.3 MB)
Collecting OpenEXR>=1.3.2
  Using cached OpenEXR-1.3.9.tar.gz (13 kB)
  Preparing metadata (setup.py) ... done
Collecting trimesh>=2.37.22
  Using cached trimesh-3.17.1-py3-none-any.whl (669 kB)
Collecting tensorflow-datasets>=2.0.0
  Using cached tensorflow_datasets-4.8.0-py3-none-any.whl (5.2 MB)
Collecting networkx
  Using cached networkx-2.8.8-py3-none-any.whl (2.0 MB)
Requirement already satisfied: wheel<1.0,>=0.23.0 in ./miniconda3/envs/nufft/lib/python3.9/site-packages (from astunparse>=1.6.0->tensorflow>=2.1.0->tensorflow-mri) (0.37.1)
Collecting python-dateutil>=2.7
  Using cached python_dateutil-2.8.2-py2.py3-none-any.whl (247 kB)
Collecting pillow>=6.2.0
  Using cached Pillow-9.3.0-cp39-cp39-macosx_10_10_x86_64.whl (3.3 MB)
Collecting pyparsing>=2.2.1
  Using cached pyparsing-3.0.9-py3-none-any.whl (98 kB)
Collecting kiwisolver>=1.0.1
  Using cached kiwisolver-1.4.4-cp39-cp39-macosx_10_9_x86_64.whl (65 kB)
Collecting fonttools>=4.22.0
  Using cached fonttools-4.38.0-py3-none-any.whl (965 kB)
Collecting cycler>=0.10
  Using cached cycler-0.11.0-py3-none-any.whl (6.4 kB)
Collecting contourpy>=1.0.1
  Using cached contourpy-1.0.6-cp39-cp39-macosx_10_9_x86_64.whl (240 kB)
Collecting werkzeug>=1.0.1
  Using cached Werkzeug-2.2.2-py3-none-any.whl (232 kB)
Collecting google-auth-oauthlib<0.5,>=0.4.1
  Using cached google_auth_oauthlib-0.4.6-py2.py3-none-any.whl (18 kB)
Requirement already satisfied: tensorboard-plugin-wit>=1.6.0 in ./miniconda3/envs/nufft/lib/python3.9/site-packages (from tensorboard<2.12,>=2.11->tensorflow>=2.1.0->tensorflow-mri) (1.8.1)
Collecting tensorboard-data-server<0.7.0,>=0.6.0
  Using cached tensorboard_data_server-0.6.1-py3-none-macosx_10_9_x86_64.whl (3.5 MB)
Collecting google-auth<3,>=1.6.3
  Using cached google_auth-2.15.0-py2.py3-none-any.whl (177 kB)
Collecting markdown>=2.6.8
  Using cached Markdown-3.4.1-py3-none-any.whl (93 kB)
Collecting requests<3,>=2.21.0
  Using cached requests-2.28.1-py3-none-any.whl (62 kB)
Collecting typeguard>=2.7
  Using cached typeguard-2.13.3-py3-none-any.whl (17 kB)
Collecting etils[epath]
  Using cached etils-0.9.0-py3-none-any.whl (140 kB)
Collecting toml
  Using cached toml-0.10.2-py2.py3-none-any.whl (16 kB)
Collecting tensorflow-metadata
  Using cached tensorflow_metadata-1.12.0-py3-none-any.whl (52 kB)
Collecting dm-tree
  Using cached dm_tree-0.1.8-cp39-cp39-macosx_10_9_x86_64.whl (115 kB)
Collecting click
  Using cached click-8.1.3-py3-none-any.whl (96 kB)
Collecting dill
  Using cached dill-0.3.6-py3-none-any.whl (110 kB)
Collecting promise
  Using cached promise-2.3-py3-none-any.whl
Collecting cachetools<6.0,>=2.0.0
  Using cached cachetools-5.2.0-py3-none-any.whl (9.3 kB)
Collecting rsa<5,>=3.1.4
  Using cached rsa-4.9-py3-none-any.whl (34 kB)
Collecting pyasn1-modules>=0.2.1
  Using cached pyasn1_modules-0.2.8-py2.py3-none-any.whl (155 kB)
Collecting requests-oauthlib>=0.7.0
  Using cached requests_oauthlib-1.3.1-py2.py3-none-any.whl (23 kB)
Collecting importlib-metadata>=4.4
  Using cached importlib_metadata-5.2.0-py3-none-any.whl (21 kB)
Collecting urllib3<1.27,>=1.21.1
  Using cached urllib3-1.26.13-py2.py3-none-any.whl (140 kB)
Collecting idna<4,>=2.5
  Using cached idna-3.4-py3-none-any.whl (61 kB)
Requirement already satisfied: certifi>=2017.4.17 in ./miniconda3/envs/nufft/lib/python3.9/site-packages (from requests<3,>=2.21.0->tensorboard<2.12,>=2.11->tensorflow>=2.1.0->tensorflow-mri) (2022.12.7)
Collecting charset-normalizer<3,>=2
  Using cached charset_normalizer-2.1.1-py3-none-any.whl (39 kB)
Collecting MarkupSafe>=2.1.1
  Using cached MarkupSafe-2.1.1-cp39-cp39-macosx_10_9_x86_64.whl (13 kB)
Collecting zipp
  Using cached zipp-3.11.0-py3-none-any.whl (6.6 kB)
Collecting importlib_resources
  Using cached importlib_resources-5.10.1-py3-none-any.whl (34 kB)
Collecting googleapis-common-protos<2,>=1.52.0
  Using cached googleapis_common_protos-1.57.0-py2.py3-none-any.whl (217 kB)
Requirement already satisfied: pyasn1<0.5.0,>=0.4.6 in ./miniconda3/envs/nufft/lib/python3.9/site-packages (from pyasn1-modules>=0.2.1->google-auth<3,>=1.6.3->tensorboard<2.12,>=2.11->tensorflow>=2.1.0->tensorflow-mri) (0.4.8)
Collecting oauthlib>=3.0.0
  Using cached oauthlib-3.2.2-py3-none-any.whl (151 kB)
Building wheels for collected packages: OpenEXR
  Building wheel for OpenEXR (setup.py) ... done
  Created wheel for OpenEXR: filename=OpenEXR-1.3.9-cp39-cp39-macosx_10_9_x86_64.whl size=35472 sha256=6c6a5015b7640c729b0668e9d690b5267a09f4be407b67e44849e1e6d78dea5b
  Stored in directory: /Users/hank7v/Library/Caches/pip/wheels/7a/fa/20/958d9c582bdd43a40b17cf8f3f86bef6945a16e96433ede38d
Successfully built OpenEXR
Installing collected packages: OpenEXR, libclang, flatbuffers, dm-tree, zipp, wrapt, urllib3, typing-extensions, typeguard, tqdm, toml, termcolor, tensorflow-io-gcs-filesystem, tensorflow-estimator, tensorboard-data-server, six, rsa, pyparsing, pyasn1-modules, psutil, protobuf, pillow, packaging, oauthlib, numpy, networkx, MarkupSafe, kiwisolver, keras, idna, grpcio, gast, fonttools, etils, dill, cycler, click, charset-normalizer, cachetools, absl-py, werkzeug, trimesh, tensorflow-addons, scipy, requests, python-dateutil, promise, opt-einsum, importlib_resources, importlib-metadata, h5py, googleapis-common-protos, google-pasta, google-auth, contourpy, astunparse, tensorflow-metadata, requests-oauthlib, matplotlib, markdown, tensorflow-datasets, google-auth-oauthlib, tensorboard, tensorflow, tensorflow-graphics, tensorflow-mri
Successfully installed MarkupSafe-2.1.1 OpenEXR-1.3.9 absl-py-1.3.0 astunparse-1.6.3 cachetools-5.2.0 charset-normalizer-2.1.1 click-8.1.3 contourpy-1.0.6 cycler-0.11.0 dill-0.3.6 dm-tree-0.1.8 etils-0.9.0 flatbuffers-22.12.6 fonttools-4.38.0 gast-0.4.0 google-auth-2.15.0 google-auth-oauthlib-0.4.6 google-pasta-0.2.0 googleapis-common-protos-1.57.0 grpcio-1.51.1 h5py-3.7.0 idna-3.4 importlib-metadata-5.2.0 importlib_resources-5.10.1 keras-2.11.0 kiwisolver-1.4.4 libclang-14.0.6 markdown-3.4.1 matplotlib-3.6.2 networkx-2.8.8 numpy-1.24.0 oauthlib-3.2.2 opt-einsum-3.3.0 packaging-22.0 pillow-9.3.0 promise-2.3 protobuf-3.19.6 psutil-5.9.4 pyasn1-modules-0.2.8 pyparsing-3.0.9 python-dateutil-2.8.2 requests-2.28.1 requests-oauthlib-1.3.1 rsa-4.9 scipy-1.9.3 six-1.16.0 tensorboard-2.11.0 tensorboard-data-server-0.6.1 tensorflow-2.11.0 tensorflow-addons-0.19.0 tensorflow-datasets-4.8.0 tensorflow-estimator-2.11.0 tensorflow-graphics-2021.12.3 tensorflow-io-gcs-filesystem-0.29.0 tensorflow-metadata-1.12.0 tensorflow-mri-0.1.0a2 termcolor-2.1.1 toml-0.10.2 tqdm-4.64.1 trimesh-3.17.1 typeguard-2.13.3 typing-extensions-4.4.0 urllib3-1.26.13 werkzeug-2.2.2 wrapt-1.14.1 zipp-3.11.0
(nufft) hank7v@Fabrizios-Mac-mini ~ %      

thanks a lot

best
Fabrizio

Hi @hank7v , thank you for your comment. I'm afraid what pip found on your Mac is a very old release which did not have any compiled ops. This probably won't work as expected.

thanks, @jmontalt, will go for Linux, any advice for the distribution?

Any distribution which supports the manylinux2014 specification should work. In other words, any reasonably modern distribution. I personally use Ubuntu 22.04.

Went for Ubuntu 22. Some problems with openEXR, but in the end it works! thanks again!