如何在 Apple M1 芯片上导入 Pandas

问题描述

当我打电话时:

import pandas as pd

tensorflow_macos上(对于 M1 芯片)

我明白了:

ImportError                               Traceback (most recent call last)
~/tensorflow_macos_venv/lib/python3.8/site-packages/pandas/__init__.py in <module>
     28 try:
---> 29     from pandas._libs import hashtable as _hashtable,lib as _lib,tslib as _tslib
     30 except ImportError as e:  # pragma: no cover

~/tensorflow_macos_venv/lib/python3.8/site-packages/pandas/_libs/__init__.py in <module>
     12 
---> 13 from pandas._libs.interval import Interval
     14 from pandas._libs.tslibs import (

ImportError: dlopen(/Users/ashkan/tensorflow_macos_venv/lib/python3.8/site-packages/pandas/_libs/interval.cpython-38-darwin.so,2): no suitable image found.  Did find:
    /Users/ashkan/tensorflow_macos_venv/lib/python3.8/site-packages/pandas/_libs/interval.cpython-38-darwin.so: mach-o,but wrong architecture
    /Users/ashkan/tensorflow_macos_venv/lib/python3.8/site-packages/pandas/_libs/interval.cpython-38-darwin.so: mach-o,but wrong architecture

The above exception was the direct cause of the following exception:

ImportError                               Traceback (most recent call last)
<ipython-input-3-94f55571b0d6> in <module>
      1 import numpy as np
----> 2 import pandas as pd
      3 
      4 import matplotlib.pyplot as plt
      5 

~/tensorflow_macos_venv/lib/python3.8/site-packages/pandas/__init__.py in <module>
     31     # hack but overkill to use re
     32     module = str(e).replace("cannot import name ","")
---> 33     raise ImportError(
     34         f"C extension: {module} not built. If you want to import "
     35         "pandas from the source directory,you may need to run "

ImportError: C extension: dlopen(/Users/ashkan/tensorflow_macos_venv/lib/python3.8/site-packages/pandas/_libs/interval.cpython-38-darwin.so,but wrong architecture not built. If you want to import pandas from the source directory,you may need to run 'python setup.py build_ext --force' to build the C extensions first.

解决方法

我希望 Xcode 命令行工具已经安装。如果没有,请安装它,然后按照步骤操作。

第 1 步:迷你锻造

miniforge GitHub 为 arm64 (Apple Silicon) 安装 miniforge。 Miniforge 支持安装为 Apple Silicon 本地编译的 Python 包。

第 2 步:创建 Conda 环境

在安装 miniforge 之后和执行此步骤之前,不要忘记打开一个新会话或获取 .zshrc 的源。

创建一个空的 Conda 环境,然后激活它并安装 python 3.8。以及所有需要的包。请注意,这里不需要 numpy,因为 Pandas 已经安装了它,但它会在最后一步被 Apple 提供的版本覆盖。

conda create --name mytf
conda activate mytf
conda install -y python==3.8.6
conda install -y pandas matplotlib scikit-learn jupyterlab

我已经测试过了。执行这些步骤后即可使用。

,

如下一篇文章 (https://github.com/apple/tensorflow_macos/issues/6) 所示,解决方案似乎是从 conda 安装 pandas,直到他们解决此问题。

安装熊猫:

conda install pandas

或者直接从源码安装: https://github.com/pandas-dev/pandas#installation-from-sources

,

使用 Anaconda 可视化 UI 安装到您创建的 conda 环境中。您只需选择您的环境并搜索熊猫即可。

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...