如何在 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)
Flutter:如何在 Apple M1 芯片中安装 Flutter 及其所需的 SDK 元素?