Недавно у меня появился новый MacBook Air M1. У меня проблемы с установкой Pandas. Есть ли что-то особенное в новом процессоре, что помешало бы установке Pandas?
Проблемы с установкой Pandas на новый MacBook Air M1
Ответы (11)
Может, уже поздно. Но единственное решение, сработавшее для меня, - это установка из исходного кода, если вы не хотите использовать rosetta2 или moniconda.
python3 -m pip install virtualenv
virtualenv -p python3.8 venv
source venv/bin/activate
pip install --upgrade pip
pip install numpy cython
git clone https://github.com/pandas-dev/pandas.git
cd pandas
python3 setup.py install
Что мне подходит:
pip3 install cython
OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 pip3 install numpy --no-use-pep517
OPENBLAS="$(brew --prefix openblas)" MACOSX_DEPLOYMENT_TARGET=11.1 pip3 install pandas --no-use-pep517
В большинстве этих статей не рассматривается проблема «нежелания» работать под Rosetta. Форк Apple TensorFlow работает в собственном режиме M1, но для этого нет Pandas. Если вы решите работать под Rosetta, вы не сможете найти подходящий TensorFlow. Это проигрышная ситуация.
conda install
, который, кажется, работает.
- person Gerard; 08.03.2021
Это можно сделать двумя способами. Но основной процесс одинаков в обоих.
Метод-1
Откройте окно терминала. Запустите arch
. Результат должен быть arm64
. А теперь делай arch -x86_64 zsh
. Это создаст внутри терминала эмулированный x86-сеанс zsh. Теперь, если вы запустите команду arch
, результат должен быть i386
.
Теперь выполните pip install pandas
или pip3 install pandas
(в зависимости от того, какая команда имеет правильную версию). И это сработает. Выполните команду exit
, чтобы выйти из эмулированного сеанса zsh.
Вы также можете выполнить одну команду в режиме эмуляции x86 без создания эмулированного сеанса zsh. Запустите arch -x86_64 pip install pandas
. Это запустит команду pip
под x86_emulation, но терминал останется в собственной среде arm.
Метод-2
Откройте приложение терминала с помощью Rosetta 2, который имитирует среду x86. Затем выполните pip install pandas
или pip3 install pandas
(в зависимости от того, какая команда имеет правильную версию), и это должно сработать.
Этот трюк будет работать почти для всех пакетов python, которые не удается установить при попытке в архитектуре ARM.
Открытие приложения Терминал с помощью Rosetta 2
- Закройте приложение терминала
- Найдите приложение терминала в Finder (обычно оно находится в Macintosh HD / Applications / Utilities)
- Вторичный Нажмите на значок терминала ›› Get Info
- Установите флажок Открыть с помощью Rosetta.
- Теперь запустите окно терминала (новое окно терминала будет открыто с использованием эмуляции Rosetta)
Edit-1: если вы устанавливаете пакет под эмуляцией x86, вам необходимо запустить свой код python также под эмуляцией x86. Если вы попытаетесь запустить python в собственной среде ARM, то ошибка несоответствия архитектуры будет выдана пакетом, для которого вы установили версию x86.
Вы можете просто использовать флаг --no-use-pep517
и без проблем устанавливать pandas.
Вот как я установил на свой ноутбук:
~/Documents/projects/m-proj
❯ pip install cython --no-use-pep517
Collecting cython
Using cached Cython-0.29.22-py2.py3-none-any.whl (980 kB)
Installing collected packages: cython
Successfully installed cython-0.29.22
~/Documents/projects/m-proj
❯ pip install numpy --no-use-pep517
Collecting numpy
Using cached numpy-1.20.1.zip (7.8 MB)
Using legacy 'setup.py install' for numpy, since package 'wheel' is not installed.
Installing collected packages: numpy
Running setup.py install for numpy ... done
Successfully installed numpy-1.20.1
~/Documents/projects/m-proj
❯ pip install pandas --no-use-pep517
Collecting pandas
Using cached pandas-1.2.3.tar.gz (5.5 MB)
Collecting python-dateutil>=2.7.3
Using cached python_dateutil-2.8.1-py2.py3-none-any.whl (227 kB)
Requirement already satisfied: pytz>=2017.3 in ./venv-trans/lib/python3.9/site-packages (from pandas) (2021.1)
Requirement already satisfied: numpy>=1.16.5 in ./venv-trans/lib/python3.9/site-packages (from pandas) (1.20.1)
Requirement already satisfied: six>=1.5 in ./venv-trans/lib/python3.9/site-packages (from python-dateutil>=2.7.3->pandas) (1.15.0)
Using legacy 'setup.py install' for pandas, since package 'wheel' is not installed.
Installing collected packages: python-dateutil, pandas
Running setup.py install for pandas ... done
Successfully installed pandas-1.2.3 python-dateutil-2.8.1
numpy-1.20.1
, но не с numpy-1.20.2
, которое требуется для python3.9. Немного тупик, который кажется супер зависящим от времени, поскольку прямо сейчас я могу установить python3.9 на M1 (arch arm64) с pyenv, но не python3.8. Было бы неплохо получить python и pandas на arm64.
- person PeterK; 02.04.2021
Miniconda - безусловно, самый простой вариант.
brew install --cask miniforge
conda create -n myenv python=3.8
conda init zsh
conda activate
conda install pandas
Если вам нужна более старая версия (недоступна для arm64 в conda-forge)
brew install --cask miniforge
conda create -n myenv python=3.8
conda init zsh
conda activate
pip install cython
curl -L https://github.com/pandas-dev/pandas/archive/v1.1.2.zip --output pandas.zip
unzip pandas.zip
cd pandas-1.1.2
python3 setup.py install
rm pandas.zip
rm -rf pandas-1.1.2
- Установите conda miniforge для OS X arm64 (Apple Silicon)
https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh
- Затем создайте виртуальную среду и установите необходимый пакет
conda create -n myenv python=3.6 conda activate myenv conda install numpy conda install pandas
Ознакомьтесь с этой статьей Apple M1 - Matplotlib, Python и Jupyter Lab или этот (тот же автор) Apple M1, Python, Pandas и Homebrew
Возможно, вам просто нужно запустить терминал с Rosetta (это указано во второй статье)
Итак, я нашел решение. По-видимому, хотя я установил флажок, чтобы открыть термин с помощью Rosetta, он сделал это не в первый раз. В конце концов я обнаружил это, выполнив arch для термина, который вернул arm64, а не i386. Перезагрузка, по-видимому, сделала выбор розетты палкой, и затем я смог успешно установить pandas с помощью pip3. Конечно, лучше было бы установить в родном режиме. Спасибо всем за указатели.
ссылка на эту страницу https://ittone.ma/ittone/python-install-pandas-on-mac-m1-big-sur-into-multiple-virtualenv/
- pip install cython
- git clone https://github.com/numpy/numpy.git
- cd numpy
- установка python3 setup.py
- git clone https://github.com/pandas-dev/pandas.git
- cd pandas
- установка python3 setup.py
@ user505117, вы можете найти это полезным: https://github.com/apple/tensorflow_macos