Проблемы с установкой Pandas на новый MacBook Air M1

Недавно у меня появился новый MacBook Air M1. У меня проблемы с установкой Pandas. Есть ли что-то особенное в новом процессоре, что помешало бы установке Pandas?


person Dan Hendrickson    schedule 01.12.2020    source источник
comment
Я не должен спрашивать (т.е. это уже должно быть в вашем вопросе), но в чем проблема?   -  person cs95    schedule 01.12.2020


Ответы (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
person rapoma    schedule 04.02.2021
comment
У меня это не сработало. Я запускаю Big Sur на Mac M1, и у меня возникла ошибка Failed to build numpy. ОШИБКА: не удалось создать колеса для numpy, которые используют PEP 517 и не могут быть установлены напрямую. - person Jim; 12.04.2021
comment
Я думаю, что для python3.8 у вас не должно быть этой ошибки. Для python3.9, если вы просто используете подсказку из ошибки, установите из исходного кода git clone github.com/ numpy / numpy.git && cd numpy && python3 setup.py install - person rapoma; 21.04.2021
comment
Гений, спас мой день также для numpy и scikit learn для Django, спасибо - person Hvitis; 25.04.2021
comment
Спасибо, это полностью помогло, потратил 4 с половиной часа, пытаясь решить эту проблему. Большое спасибо за эти знания. - person Jackstine; 03.06.2021

Что мне подходит:

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
person Luke Taylor    schedule 28.02.2021

В большинстве этих статей не рассматривается проблема «нежелания» работать под Rosetta. Форк Apple TensorFlow работает в собственном режиме M1, но для этого нет Pandas. Если вы решите работать под Rosetta, вы не сможете найти подходящий TensorFlow. Это проигрышная ситуация.

person Ashkan    schedule 07.01.2021
comment
Неправда, если вы используете (мини) conda. Вы можете использовать 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

  1. Закройте приложение терминала
  2. Найдите приложение терминала в Finder (обычно оно находится в Macintosh HD / Applications / Utilities)
  3. Вторичный Нажмите на значок терминала ›› Get Info
  4. Установите флажок Открыть с помощью Rosetta.
  5. Теперь запустите окно терминала (новое окно терминала будет открыто с использованием эмуляции Rosetta)

Edit-1: если вы устанавливаете пакет под эмуляцией x86, вам необходимо запустить свой код python также под эмуляцией x86. Если вы попытаетесь запустить python в собственной среде ARM, то ошибка несоответствия архитектуры будет выдана пакетом, для которого вы установили версию x86.

person Saroopashree Kumaraguru    schedule 07.01.2021

Вы можете просто использовать флаг --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
person Dragos Vasile    schedule 23.03.2021
comment
У меня это работает с 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
person Defenestrator6    schedule 11.02.2021

  1. Установите conda miniforge для OS X arm64 (Apple Silicon)

https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh

  1. Затем создайте виртуальную среду и установите необходимый пакет conda create -n myenv python=3.6 conda activate myenv conda install numpy conda install pandas
person autitya    schedule 24.01.2021

Ознакомьтесь с этой статьей Apple M1 - Matplotlib, Python и Jupyter Lab или этот (тот же автор) Apple M1, Python, Pandas и Homebrew

Возможно, вам просто нужно запустить терминал с Rosetta (это указано во второй статье)

person wizarpy_vm    schedule 02.12.2020
comment
В статье просто говорится, что нужно поставить галочку «Начать с Rosetta для iTerm2». Это мне не помогло. - person Ben Butterworth; 17.02.2021

Итак, я нашел решение. По-видимому, хотя я установил флажок, чтобы открыть термин с помощью Rosetta, он сделал это не в первый раз. В конце концов я обнаружил это, выполнив arch для термина, который вернул arm64, а не i386. Перезагрузка, по-видимому, сделала выбор розетты палкой, и затем я смог успешно установить pandas с помощью pip3. Конечно, лучше было бы установить в родном режиме. Спасибо всем за указатели.

person Dan H.    schedule 08.12.2020
comment
Другой, но связанный с этим вопрос: есть ли у вас какие-нибудь советы по установке tenorflow? pip3 установить storage.googleapis.com/ tensorflow / mac / cpu / возвращает ОШИБКУ: tenorflow-2.4.0-cp38-cp38-macosx_10_14_x86_64.whl не поддерживается на этой платформе. - person user505117; 17.12.2020

ссылка на эту страницу https://ittone.ma/ittone/python-install-pandas-on-mac-m1-big-sur-into-multiple-virtualenv/

  1. pip install cython
  2. git clone https://github.com/numpy/numpy.git
  3. cd numpy
  4. установка python3 setup.py
  5. git clone https://github.com/pandas-dev/pandas.git
  6. cd pandas
  7. установка python3 setup.py
person zen ko    schedule 04.05.2021
comment
Какую ошибку вы получаете? - person Marioanzas; 04.05.2021

@ user505117, вы можете найти это полезным: https://github.com/apple/tensorflow_macos

person user2037606    schedule 21.12.2020