如何在 Apple M1 芯片上导入 Pandas

Posted

技术标签:

【中文标题】如何在 Apple M1 芯片上导入 Pandas【英文标题】:How do I import Pandas on Apple M1 chip 【发布时间】:2021-04-10 08:44:00 【问题描述】:

当我打电话时:

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, 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 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.

【问题讨论】:

检查反馈:...'但未构建错误的架构。如果您想从源目录导入 pandas,您可能需要先运行“python setup.py build_ext --force”来构建 C 扩展。 ,您是否尝试过从源代码导入,并按照建议运行“python setup.py build_ext --force”? 是的,我看到了。在哪里(哪个位置)运行'python setup.py build_ext --force'? TensorFlow_macos 下的 Pandas 文件夹没有 setup.py。 【参考方案1】:

按照以下步骤操作 - 重要With Tensorflow Installation

使用 miniforge 安装执行此操作 -

conda install numpy scipy scikit-learn pandas matplotlib seaborn

【讨论】:

- 在此之前,请使用 developer.apple.com/metal/tensorflow-plugin 链接完成完整的安装过程【参考方案2】:

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

【讨论】:

【参考方案3】:

我希望 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

我已经测试过了。完成这些步骤后它将起作用。

【讨论】:

【参考方案4】:

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

安装熊猫:

conda install pandas

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

【讨论】:

谢谢恩里克。康达知道M1吗?我只能看到 x64 和 x86 Mac 安装程序。 @Ashkan 你可以使用 x64。 它没有用。它抱怨架构 @Ashkan 使用 miniforge github.com/conda-forge/miniforge

以上是关于如何在 Apple M1 芯片上导入 Pandas的主要内容,如果未能解决你的问题,请参考以下文章

在 M1 芯片上运行 rails 时出错(Apple Silicon)

虚拟环境 Apple M1 芯片上的错误架构问题

Flutter:如何在 Apple M1 芯片中安装 Flutter 及其所需的 SDK 元素?

Apple M1 芯片上的随机“断言失败”错误

苹果芯片(M1/Apple Chip)通过UTM安装x86架构虚拟机指南/性能测试(以ubuntu18.04为例)

React Native Project 没有在使用 Apple M1 芯片的 iOS 模拟器上运行