atclaus
atclaus

Reputation: 1176

Installing python tables on mac with m1 chip

I am trying to use tables in python3 on a new mac mini with the M1 chip.

I am getting multiple errors when running HDF5_DIR=/opt/homebrew/Cellar/hdf5/1.12.0_1 pip3 install tables

    ERROR: Command errored out with exit status 1:
   command: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/pip-install-vok5ylwx/tables_cf9b90e841c543338af0578c772dd962/setup.py'"'"'; __file__='"'"'/private/var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/pip-install-vok5ylwx/tables_cf9b90e841c543338af0578c772dd962/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/pip-wheel-_1y0kbny
       cwd: /private/var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/pip-install-vok5ylwx/tables_cf9b90e841c543338af0578c772dd962/
  Complete output (293 lines):
  * Using Python 3.9.1 (v3.9.1:1e5d33e9b9, Dec  7 2020, 12:10:52)
  * USE_PKGCONFIG: False
  * Found HDF5 headers at ``/opt/homebrew/Cellar/hdf5/1.12.0_1/include``, library at ``/opt/homebrew/Cellar/hdf5/1.12.0_1/lib``.
  .. WARNING:: Could not find the HDF5 runtime.
     The HDF5 shared library was *not* found in the default library
     paths. In case of runtime problems, please remember to install it.
  /var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/lzo_version_date5uv_p4uz.c:2:5: error: implicit declaration of function 'lzo_version_date' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      lzo_version_date();
      ^
  1 error generated.
  * Could not find LZO 2 headers and library; disabling support for it.
  /var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/lzo_version_datewh6xukqc.c:2:5: error: implicit declaration of function 'lzo_version_date' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      lzo_version_date();
      ^
  1 error generated.
  * Could not find LZO 1 headers and library; disabling support for it.
  /var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/BZ2_bzlibVersion0fv_km8c.c:2:5: error: implicit declaration of function 'BZ2_bzlibVersion' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      BZ2_bzlibVersion();
      ^
  1 error generated.
  * Could not find bzip2 headers and library; disabling support for it.
  /var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/blosc_list_compressorsqqaoy5ob.c:2:5: error: implicit declaration of function 'blosc_list_compressors' is invalid in C99 [-Werror,-Wimplicit-function-declaration]
      blosc_list_compressors();
      ^
  1 error generated.
  * Could not find blosc headers and library; using internal sources.
  SSE2 detected and enabled
  /Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/distutils/dist.py:274: UserWarning: Unknown distribution option: 'extra_require'
    warnings.warn(msg)

I installed blosc and tried to install python-lzo via pip install python-lzo but get

  ERROR: Command errored out with exit status 1:
   command: /Library/Frameworks/Python.framework/Versions/3.9/bin/python3 -u -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/private/var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/pip-install-7vr_mnqv/python-lzo_a324aed1764741928cf19a18f366c948/setup.py'"'"'; __file__='"'"'/private/var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/pip-install-7vr_mnqv/python-lzo_a324aed1764741928cf19a18f366c948/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' bdist_wheel -d /private/var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/pip-wheel-c1_ztyik
       cwd: /private/var/folders/wf/6qtzk3b11fxfpw2r195w68v40000gn/T/pip-install-7vr_mnqv/python-lzo_a324aed1764741928cf19a18f366c948/
  Complete output (12 lines):
  running bdist_wheel
  running build
  running build_ext
  building 'lzo' extension
  creating build
  creating build/temp.macosx-10.9-x86_64-3.9
  gcc -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -arch x86_64 -g -I/usr/include/lzo -I/Library/Frameworks/Python.framework/Versions/3.9/include/python3.9 -c lzomodule.c -o build/temp.macosx-10.9-x86_64-3.9/lzomodule.o
  lzomodule.c:35:10: fatal error: 'lzo/lzo1x.h' file not found
  #include <lzo/lzo1x.h>
           ^~~~~~~~~~~~~
  1 error generated.
  error: command '/usr/bin/gcc' failed with exit code 1
  ----------------------------------------
  ERROR: Failed building wheel for python-lzo

Bonus points if you can help me understand why tables was never an issue on python2 (admittedly on a Windows machine, but I am getting all similar errors there too on python3)

Upvotes: 7

Views: 7369

Answers (3)

Yongke
Yongke

Reputation: 338

UPDATE(2021-11-15): conda works now

conda install pytables

These steps works for me.

  1. Install Homebrew for Mac M1 (arm64 version)
  2. Then install packages
brew install hdf5 c-blosc lzo bzip2
  1. Check installation path
brew info -q hdf5 c-blosc lzo bzip2|grep '/opt/homebrew'
/opt/homebrew/Cellar/hdf5/1.12.0_3 (268 files, 19.4MB) *
/opt/homebrew/Cellar/c-blosc/1.21.0 (10 files, 1.5MB) *
/opt/homebrew/Cellar/lzo/2.10 (31 files, 580.4KB) *
/opt/homebrew/Cellar/bzip2/1.0.8 (26 files, 531.5KB)
...
  1. Download and unarchive PyTables(PyTables-3.6.1 for me)
  2. Compile
cd PyTables-3.6.1
python setup.py build --hdf5=/opt/homebrew/Cellar/hdf5/1.12.0_3 --use-pkgconfig=FALSE --blosc=/opt/homebrew/Cellar/c-blosc/1.21.0 --lzo=/opt/homebrew/Cellar/lzo/2.10 --bzip2=/opt/homebrew/Cellar/bzip2/1.0.8
  1. Install
python setup.py install --hdf5=/opt/homebrew/Cellar/hdf5/1.12.0_3

Upvotes: 11

Pablo
Pablo

Reputation: 409

The tables module can be easily installed using Miniforge (which can be easily installed using pyenv or following their installation instructions):

https://github.com/conda-forge/miniforge

Once Miniforge is installed you can install tables on your M1 Mac using:

conda install pytables

Upvotes: 2

frdarosa
frdarosa

Reputation: 11

You may try this link https://github.com/PyTables/PyTables/issues/219#issuecomment-24117053 After many searches, I was able to install tables by setting the HDF5_DIR and

pip install git+https://github.com/PyTables/PyTables.git@master#egg=tables

Upvotes: 1

Related Questions