#python #conda #apple-m1 #conda-forge #mini-forge
Вопрос:
Например, у меня есть следующий environment.yml
файл
name: harmonic-backend
channels:
- conda-forge
dependencies:
- python==3.8.10
- apache-beam==2.31.0
- pyarrow==4.0.1
prefix: /opt/homebrew/Caskroom/miniforge/base/envs/harmonic-backend
И ниже приведен результат, когда я пытаюсь соответствующим образом создать среду
sumit@Sumits-MacBook-Air backend % conda env create
Collecting package metadata (repodata.json): done
Solving environment: -
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed
Solving environment: -
Found conflicts! Looking for incompatible packages.
This can take several minutes. Press CTRL-C to abort.
failed
UnsatisfiableError: The following specifications were found to be incompatible with each other:
Output in format: Requested package -> Available versions
Package python conflicts for:
apache-beam==2.31.0 -> crcmod[version='>=1.7,<2.0'] -> python[version='3.8.*|>=2.7|>=3|>=3.6|>=3.9,<3.10.0a0']
python==3.8.10
apache-beam==2.31.0 -> python[version='>=3.8,<3.9.0a0']
Package pyarrow conflicts for:
apache-beam==2.31.0 -> pyarrow[version='>=0.15.1,<5.0.0']
pyarrow==4.0.1
Package setuptools conflicts for:
python==3.8.10 -> pip -> setuptools
apache-beam==2.31.0 -> grpcio[version='>=1.29.0,<2'] -> setuptools
Package ncurses conflicts for:
pyarrow==4.0.1 -> python[version='>=3.9,<3.10.0a0'] -> ncurses[version='>=6.2,<6.3.0a0']
python==3.8.10 -> readline[version='>=8.1,<9.0a0'] -> ncurses[version='>=6.2,<6.3.0a0']
Просматривая выходные данные, я не могу найти никакого конфликта. Что здесь происходит и как мне это решить?
Для большего контекста я использую miniforge
installed using brew
на mac M1.
Комментарии:
1. Насколько важно, чтобы у вас были именно эти версии каждого пакета?
2. @MattThompson из моего анализа, ослабление версий не помогло бы. Все
apache-beam
сборки для платформы osx-arm64 зависят отdill >=0.3.1.1,<0.3.2
, но такого пакета нет.
Ответ №1:
Исправлено
Теперь это работает благодаря усилиям одного из сопровождающих apache-beam-feedstock (см. Выпуск).
Для дальнейшего использования, когда такие сбои наблюдаются, пожалуйста, сообщите о них сопровождающим исходного сырья Conda Forge. Многие сборки для osx-arm64 скомпилированы и упакованы, но для их тестирования не настроена какая-либо инфраструктура CI. Следовательно, разработчики зависят от конечных пользователей в сообществе, поднимающих им вопросы, когда они возникают на собственном оборудовании osx-arm64.
В противном случае, если исправления не будут реализованы немедленно, пользователям Apple Silicon следует рассмотреть контейнерное решение (например, Docker), которое не использует платформу osx-arm64. Или используйте Rosetta для эмуляции платформы osx-64.
Анализ сбоя (устарел)
Мамба дает более интерпретируемый результат (при условии, что вы используете собственную платформу osx-arm64):
$ CONDA_SUBDIR=osx-arm64 mamba create -n foo python=3.8.10 apache-beam=2.31.0 pyarrow=4.0.1
__ __ __ __
/ / / /
/ / / /
███████████████/ /██/ /██/ /██/ /████████████████████████
/ / / / / ____
/ / _/ _/ _/ o __,
/ _/ _____/ `
|/
███╗ ███╗ █████╗ ███╗ ███╗██████╗ █████╗
████╗ ████║██╔══██╗████╗ ████║██╔══██╗██╔══██╗
██╔████╔██║███████║██╔████╔██║██████╔╝███████║
██║╚██╔╝██║██╔══██║██║╚██╔╝██║██╔══██╗██╔══██║
██║ ╚═╝ ██║██║ ██║██║ ╚═╝ ██║██████╔╝██║ ██║
╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═════╝ ╚═╝ ╚═╝
mamba (0.16.0) supported by @QuantStack
GitHub: https://github.com/mamba-org/mamba
Twitter: https://twitter.com/QuantStack
█████████████████████████████████████████████████████████████
Looking for: ['python=3.8.10', 'apache-beam=2.31.0', 'pyarrow=4.0.1']
conda-forge/noarch Using cache
bioconda/noarch Using cache
pkgs/main/noarch [====================] (00m:00s) No change
pkgs/r/osx-arm64 [====================] (00m:00s) 404 Failed
pkgs/r/noarch [====================] (00m:00s) No change
pkgs/main/osx-arm64 [====================] (00m:00s) Done
bioconda/osx-arm64 [====================] (00m:00s) 404 Failed
conda-forge/osx-arm64 [====================] (00m:00s) Done
Encountered problems while solving:
- nothing provides dill >=0.3.1.1,<0.3.2 needed by apache-beam-2.31.0-py38hea4295b_0
А именно, dill
пакет, который apache-beam=2.31.0
требуется, недоступен для платформы osx-arm64. Основная проблема заключается в том, что dill
для сборки пакета не требуется apache-beam
, а поскольку Azure не предоставляет собственные образы M1, конвейер Conda Forge никогда не проверяет, действительно ли сборки osx-arm64 можно установить (!).