[Raspberry Pi 4] ERROR: Failed building wheel for h5py

2024. 9. 22. 03:39ㆍComputer Info./πŸ“Ÿ Raspberry Pi

λΌμ¦ˆλ² λ¦¬νŒŒμ΄μ—μ„œ tensorflowλ₯Ό μ„€μΉ˜ 쀑에 μ•„λž˜μ™€ 같은 였λ₯˜κ°€ λ°œμƒν–ˆλ‹€.

더보기
(.venv) 909ma@raspberrypi:~/projects/Camera-Detection-main $ pip3 install tensorflow
Looking in indexes: https://pypi.org/simple, https://www.piwheels.org/simple
Collecting tensorflow
  Downloading tensorflow-2.17.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (223.9 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 223.9/223.9 MB 891.4 kB/s eta 0:00:00
Collecting absl-py>=1.0.0
  Downloading https://www.piwheels.org/simple/absl-py/absl_py-2.1.0-py3-none-any.whl (133 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 133.7/133.7 kB 213.2 kB/s eta 0:00:00
Collecting astunparse>=1.6.0
  Downloading https://www.piwheels.org/simple/astunparse/astunparse-1.6.3-py2.py3-none-any.whl (12 kB)
Collecting flatbuffers>=24.3.25
  Downloading https://www.piwheels.org/simple/flatbuffers/flatbuffers-20181003210633-py2.py3-none-any.whl (14 kB)
Collecting gast!=0.5.0,!=0.5.1,!=0.5.2,>=0.2.1
  Downloading https://www.piwheels.org/simple/gast/gast-0.6.0-py3-none-any.whl (21 kB)
Collecting google-pasta>=0.1.1
  Downloading https://www.piwheels.org/simple/google-pasta/google_pasta-0.2.0-py3-none-any.whl (57 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.5/57.5 kB 1.5 MB/s eta 0:00:00
Collecting h5py>=3.10.0
  Downloading h5py-3.11.0.tar.gz (406 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 406.5/406.5 kB 1.3 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Collecting libclang>=13.0.0
  Downloading libclang-18.1.1-py2.py3-none-manylinux2014_aarch64.whl (23.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 23.8/23.8 MB 1.7 MB/s eta 0:00:00
Collecting ml-dtypes<0.5.0,>=0.3.1
  Downloading ml_dtypes-0.4.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (2.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 2.2/2.2 MB 1.8 MB/s eta 0:00:00
Collecting opt-einsum>=2.3.2
  Downloading https://www.piwheels.org/simple/opt-einsum/opt_einsum-3.3.0-py3-none-any.whl (65 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 65.5/65.5 kB 199.5 kB/s eta 0:00:00
Collecting packaging
  Downloading https://www.piwheels.org/simple/packaging/packaging-24.1-py3-none-any.whl (53 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 54.0/54.0 kB 156.1 kB/s eta 0:00:00
Collecting protobuf!=4.21.0,!=4.21.1,!=4.21.2,!=4.21.3,!=4.21.4,!=4.21.5,<5.0.0dev,>=3.20.3
  Downloading protobuf-4.25.5-cp37-abi3-manylinux2014_aarch64.whl (293 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 293.7/293.7 kB 999.2 kB/s eta 0:00:00
Collecting requests<3,>=2.21.0
  Downloading https://www.piwheels.org/simple/requests/requests-2.32.3-py3-none-any.whl (64 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 64.9/64.9 kB 192.0 kB/s eta 0:00:00
Requirement already satisfied: setuptools in /home/SinhyukKIM/projects/.venv/lib/python3.11/site-packages (from tensorflow) (66.1.1)
Collecting six>=1.12.0
  Downloading https://www.piwheels.org/simple/six/six-1.16.0-py2.py3-none-any.whl (11 kB)
Collecting termcolor>=1.1.0
  Downloading https://www.piwheels.org/simple/termcolor/termcolor-2.4.0-py3-none-any.whl (7.7 kB)
Collecting typing-extensions>=3.6.6
  Downloading https://www.piwheels.org/simple/typing-extensions/typing_extensions-4.12.2-py3-none-any.whl (37 kB)
Collecting wrapt>=1.11.0
  Downloading wrapt-1.16.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (80 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 80.9/80.9 kB 1.3 MB/s eta 0:00:00
Collecting grpcio<2.0,>=1.24.3
  Downloading grpcio-1.66.1-cp311-cp311-manylinux_2_17_aarch64.whl (5.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.5/5.5 MB 2.6 MB/s eta 0:00:00
Collecting tensorboard<2.18,>=2.17
  Downloading tensorboard-2.17.1-py3-none-any.whl (5.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 5.5/5.5 MB 2.7 MB/s eta 0:00:00
Collecting keras>=3.2.0
  Downloading https://www.piwheels.org/simple/keras/keras-3.5.0-py3-none-any.whl (1.1 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.1/1.1 MB 489.9 kB/s eta 0:00:00
Collecting tensorflow-io-gcs-filesystem>=0.23.1
  Downloading tensorflow_io_gcs_filesystem-0.37.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (4.8 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 4.8/4.8 MB 3.1 MB/s eta 0:00:00
Collecting numpy<2.0.0,>=1.23.5
  Downloading numpy-1.26.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (14.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 14.2/14.2 MB 1.5 MB/s eta 0:00:00
Collecting wheel<1.0,>=0.23.0
  Downloading https://www.piwheels.org/simple/wheel/wheel-0.44.0-py3-none-any.whl (67 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 67.1/67.1 kB 176.8 kB/s eta 0:00:00
Collecting rich
  Downloading https://www.piwheels.org/simple/rich/rich-13.8.1-py3-none-any.whl (241 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 241.6/241.6 kB 228.0 kB/s eta 0:00:00
Collecting namex
  Downloading https://www.piwheels.org/simple/namex/namex-0.0.8-py3-none-any.whl (5.8 kB)
Collecting optree
  Downloading optree-0.12.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (319 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 319.4/319.4 kB 906.7 kB/s eta 0:00:00
Collecting charset-normalizer<4,>=2
  Downloading charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (136 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 136.6/136.6 kB 423.2 kB/s eta 0:00:00
Collecting idna<4,>=2.5
  Downloading https://www.piwheels.org/simple/idna/idna-3.10-py3-none-any.whl (70 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 70.4/70.4 kB 187.2 kB/s eta 0:00:00
Collecting urllib3<3,>=1.21.1
  Downloading https://www.piwheels.org/simple/urllib3/urllib3-2.2.3-py3-none-any.whl (126 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 126.3/126.3 kB 373.4 kB/s eta 0:00:00
Collecting certifi>=2017.4.17
  Downloading https://www.piwheels.org/simple/certifi/certifi-2024.8.30-py3-none-any.whl (167 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 167.3/167.3 kB 437.7 kB/s eta 0:00:00
Collecting markdown>=2.6.8
  Downloading https://www.piwheels.org/simple/markdown/Markdown-3.7-py3-none-any.whl (106 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 106.3/106.3 kB 327.7 kB/s eta 0:00:00
Collecting tensorboard-data-server<0.8.0,>=0.7.0
  Downloading tensorboard_data_server-0.7.2-py3-none-any.whl (2.4 kB)
Collecting werkzeug>=1.0.1
  Downloading https://www.piwheels.org/simple/werkzeug/werkzeug-3.0.4-py3-none-any.whl (227 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 227.6/227.6 kB 255.1 kB/s eta 0:00:00
Collecting MarkupSafe>=2.1.1
  Downloading MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (29 kB)
Collecting markdown-it-py>=2.2.0
  Downloading https://www.piwheels.org/simple/markdown-it-py/markdown_it_py-3.0.0-py3-none-any.whl (87 kB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 87.5/87.5 kB 142.9 kB/s eta 0:00:00
Collecting pygments<3.0.0,>=2.13.0
  Downloading https://www.piwheels.org/simple/pygments/pygments-2.18.0-py3-none-any.whl (1.2 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 1.2/1.2 MB 496.4 kB/s eta 0:00:00
Collecting mdurl~=0.1
  Downloading https://www.piwheels.org/simple/mdurl/mdurl-0.1.2-py3-none-any.whl (10.0 kB)
Building wheels for collected packages: h5py
  Building wheel for h5py (pyproject.toml) ... error
  error: subprocess-exited-with-error

  Γ— Building wheel for h5py (pyproject.toml) did not run successfully.
  β”‚ exit code: 1
  ╰─> [73 lines of output]
      running bdist_wheel
      running build
      running build_py
      creating build/lib.linux-aarch64-cpython-311/h5py
      copying h5py/h5py_warnings.py -> build/lib.linux-aarch64-cpython-311/h5py
      copying h5py/ipy_completer.py -> build/lib.linux-aarch64-cpython-311/h5py
      copying h5py/__init__.py -> build/lib.linux-aarch64-cpython-311/h5py
      copying h5py/version.py -> build/lib.linux-aarch64-cpython-311/h5py
      creating build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/selections.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/dataset.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/vds.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/filters.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/group.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/base.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/attrs.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/files.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/__init__.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/dims.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/selections2.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/compat.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      copying h5py/_hl/datatype.py -> build/lib.linux-aarch64-cpython-311/h5py/_hl
      creating build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_h5z.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_selections.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_dimension_scales.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_attrs.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_filters.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_attrs_data.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_slicing.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_h5p.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_completions.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_dataset_swmr.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_h5f.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_dataset_getitem.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_h5d_direct_chunk.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_attribute_create.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_file2.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_file_alignment.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_dataset.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_file.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/conftest.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_file_image.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_datatype.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_h5o.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_dims_dimensionproxy.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_dtype.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_h5t.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_errors.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_h5pl.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_objects.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_h5.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/__init__.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_big_endian_file.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/common.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_base.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_group.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      copying h5py/tests/test_ros3.py -> build/lib.linux-aarch64-cpython-311/h5py/tests
      creating build/lib.linux-aarch64-cpython-311/h5py/tests/data_files
      copying h5py/tests/data_files/__init__.py -> build/lib.linux-aarch64-cpython-311/h5py/tests/data_files
      creating build/lib.linux-aarch64-cpython-311/h5py/tests/test_vds
      copying h5py/tests/test_vds/test_highlevel_vds.py -> build/lib.linux-aarch64-cpython-311/h5py/tests/test_vds
      copying h5py/tests/test_vds/test_lowlevel_vds.py -> build/lib.linux-aarch64-cpython-311/h5py/tests/test_vds
      copying h5py/tests/test_vds/__init__.py -> build/lib.linux-aarch64-cpython-311/h5py/tests/test_vds
      copying h5py/tests/test_vds/test_virtual_source.py -> build/lib.linux-aarch64-cpython-311/h5py/tests/test_vds
      copying h5py/tests/data_files/vlen_string_dset_utc.h5 -> build/lib.linux-aarch64-cpython-311/h5py/tests/data_files
      copying h5py/tests/data_files/vlen_string_s390x.h5 -> build/lib.linux-aarch64-cpython-311/h5py/tests/data_files
      copying h5py/tests/data_files/vlen_string_dset.h5 -> build/lib.linux-aarch64-cpython-311/h5py/tests/data_files
      running build_ext
      Loading library to get build settings and version: libhdf5.so
      error: Unable to load dependency HDF5, make sure HDF5 is installed properly
      Library dirs checked: []
      error: libhdf5.so: cannot open shared object file: No such file or directory
      [end of output]

  note: This error originates from a subprocess, and is likely not a problem with pip.
  ERROR: Failed building wheel for h5py
Failed to build h5py
ERROR: Could not build wheels for h5py, which is required to install pyproject.toml-based projects


μš”μ•½ν•˜μžλ©΄ `ERROR: Failed building wheel for h5py`이 λ°œμƒν–ˆλ‹€.

 

κ·Έλž˜μ„œ κ°„λ‹¨ν•˜κ²Œ ν•΄κ²°ν•  수 μžˆλŠ” 방법을 μ†Œκ°œν•œλ‹€.

 

1. ν•΄κ²° 방법

sudo apt install python3-dev libhdf5-dev -y
sudo apt install python3-h5py -y

이 두 가지λ₯Ό μ„€μΉ˜ν•˜λ‹ˆ `h5py`κ°€ λ¬΄μ‚¬νžˆ μ„€μΉ˜λœλ‹€.

 

2. μœ„μ˜ λ°©λ²•μœΌλ‘œλ„ λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄...

pip install --upgrade pip setuptools whee

맨 처음 이것을 μ‹œλ„ν–ˆλ‹€.

 

sudo apt-get install libhdf5-dev libhdf5-serial-dev libhdf5-103 -y
sudo apt-get install build-essential python3-dev
sudo apt-get install libatlas-base-dev -y
sudo apt-get update
sudo apt-get upgrade -y

이후 μœ„λ₯Ό μ‹œλ„ν–ˆλ‹€.

 

pip3 install --no-binary=h5py h5py

그리고 이걸 μ‹œλ„ν•΄μ„œ μ„€μΉ˜λ₯Ό λ‹€μ‹œ ν–ˆμ§€λ§Œ λ‚˜λŠ” μ‹€νŒ¨ν–ˆλ‹€.

 

pip3 install h5py --upgrade --no-dependencies --force

κ·Έλž˜μ„œ κ°•μ œλ‘œ μ„€μΉ˜ν•˜λ„λ‘ ν–ˆμ§€λ§Œ μ΄λ ‡κ²Œν•΄λ„ λ˜μ§€ μ•Šμ•˜λ‹€.

 

sudo apt install python3-dev libhdf5-dev -y
sudo apt install python3-h5py -y

그리고 μœ„μ˜ 두 쀄을 μž…λ ₯ν•˜λ‹ˆ λ¬΄μ‚¬νžˆ μ„€μΉ˜κ°€ λ˜μ—ˆλ‹€.

 

λ§Œμ•½ μ΄λ ‡κ²Œ μ§„ν–‰ν–ˆμœΌλ‚˜ κ·Έλž˜λ„ ν•΄κ²°λ˜μ§€ μ•ŠλŠ”λ‹€λ©΄ `h5py`λ₯Ό ν•„μš”λ‘œ ν•˜λŠ” 라이브러리(예λ₯Ό λ“€μ–΄ `Cython`)λ₯Ό μ„€μΉ˜ν•  κ³„νšμ΄μ—ˆλ‹€.

 

이 νλ¦„μ˜ 관계가 μžˆλŠ”μ§€ μ •ν™•νžˆ νŒŒμ•…ν•˜μ§€λŠ” λͺ»ν•˜μ˜€κΈ°μ— μ΄λ ‡κ²Œ κΈ°μˆ ν•œλ‹€.