在M1芯片的Mac上安装Python tables

6

我正在尝试在装有 M1 芯片的新 Mac mini 上使用 Python3 中的表格。

当我运行 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)

我安装了blosc,尝试通过pip install python-lzo安装python-lzo,但是出现了如下错误:

  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

如果您能帮我理解为什么在Python2中表格从未成为问题(尽管在Windows机器上),那就更好了,但我在Python3上也遇到了所有类似的错误。

你解决了吗?我和你一样面临着同样的问题。虽然我喜欢M1芯片,但它确实让软件开发变得很繁琐。 - Thomas Myers
没有,我最终选择了擦除并重新安装Big Sur,这本身就花费了几个小时,然后又花了大约3个小时与苹果支持团队联系。我正在尝试使用全新的安装程序通过pyenv来完成操作,因为似乎Python3可能会破坏mac上的默认python? - atclaus
3个回答

9

这些步骤对我有用。

  1. 安装适用于Mac M1(arm64版本)的Homebrew
  2. 然后安装软件包
brew install hdf5 c-blosc lzo bzip2
  1. 检查安装路径
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. 下载并解压PyTables(PyTables-3.6.1 for me)
  2. 编译
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. 安装
python setup.py install --hdf5=/opt/homebrew/Cellar/hdf5/1.12.0_3

更新(2021-11-15):conda现在可以使用了

conda install pytables

1
可以把更新的答案放在最上面吗? :) - Pellet

1

可以使用Miniforge(可以使用pyenv或按照其安装说明轻松安装)轻松安装表格模块:

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

一旦安装了Miniforge,您就可以使用以下命令在M1 Mac上安装tables:

conda install pytables

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接