發表文章

目前顯示的是 7月, 2021的文章

在 M1 Macs 上安裝 h5py 及 pandas 的 HDF5 支援

最近因為被指派說要研究 HDF5,同時比較一下跟 SQL 的效能比較,試著在我自己的 M1 MacBook Air 上裝 h5py,果不其然又是惡夢一場(倒)。 前情提要就是目前還是有蠻多科學運算相關的 libraries 對 ARM based 的作業系統都還是支援度不佳,M1 Macs 當然也不例外。雖然隨著 Macs 全面使用 ARM 架構之後相信之後會越來越好。 總之,經過了一番折騰,終於搞定現在在 M1 Macs 上安裝 h5py 的方法。 首先,先確定你在 Terminal 中使用的 brew 是原生而非 x86 版本的 brew。測試的方式是在 Terminal 中打 which brew,顯示出來的結果應該要是 /opt/homebrew/bin/brew 確定使用的 brew 是原生的之後,以 brew 安裝 HDF5,指令當然就是 brew install hdf5 接著,確定你有安裝好原生支援的 numpy(現在最新版本的 numpy 1.20.3 確認是沒問題的)。接著我們就可以安裝 h5py。用 pip 安裝當然是第一個想到的方法,但由於 h5py 的 setup.py 沒有把判斷式寫好,導致就算系統上已經安裝好最新的 numpy, h5py 在安裝時還是去用了 1.19.3 版 。因此我們需要作一點小改動如下 python3 -m pip install --no-build-isolation h5py 這樣就搞定了在 Python 內使用 HDF5 的前置作業。不過,由於處理資料時還是很常會使用 pandas,又剛好 pandas 的 Dataframe 有 .to_hdf 函數可用,有些 libraries 就需要額外安裝。主要需要裝的其實就是 PyTables,但 PyTables 偏偏直接 pip 安裝又是各種問題,所以還是得一步一步來。 解決安裝 PyTables 的方法主要參考的是 這篇 。首先,把 PyTables 需要的 libraries 裝起來。這些包括 hdf5、c-blosc、lzo,以及 bzip2。 hdf5 前面已經安裝過了,剩下的同樣可以用 brew 輕鬆地安裝起來。 安裝完之後確定一下 hdf5 的安裝路徑在哪。你可以透過以下的指令來作這件事情 brew info -q hdf5|grep '/