Estoy tratando de crear un nuevo entorno con Python 3.7 usando Conda como:
conda create -n qnn python=3.7Tengo los siguientes errores:
Collecting package metadata (current_repodata.json): done Solving environment: failed with repodata from current_repodata.json, will retry with next repodata source. Collecting package metadata (repodata.json): done Solving environment: failed PackagesNotFoundError: The following packages are not available from current channels: - python==3.7 Current channels: - https://conda.anaconda.org/conda-forge/osx-arm64 - https://conda.anaconda.org/conda-forge/noarch To search for alternate channels that may provide the conda package you're looking for, navigate to https://anaconda.org and use the search bar at the top of the page.¿Por qué Python 3.7 aparentemente no está disponible?
Esto es en una máquina Apple Silicon ( osx-arm64 ) que ejecuta macOS.
Dado que Python 3.8 se lanzó durante aproximadamente un año cuando Apple Silicon llegó al mercado, las compilaciones de Python 3.7 para osx-arm64 nunca formaron parte de la matriz de compilación normal de Conda Forge.
Las alternativas inmediatas para usar 3.7 en sistemas Apple Silicon serían emular x86_64 con Rosetta o usar un sistema contenedor, por ejemplo, Docker.
Similar a lo que se hace para ejecutar entornos win-32 en máquinas x86_64 , se pueden crear entornos osx-64 como
## create empty environment conda create -n py37 ## activate conda activate py37 ## use x86_64 architecture channel(s) conda config --env --set subdir osx-64 ## install python, numpy, etc. (add more packages here...) conda install python=3.7 numpy⚠️ Nota importante: asegúrese de activar siempre este entorno antes de instalar paquetes. De lo contrario, el valor CONDA_SUBDIR predeterminado ( osx-arm64 ) puede estar activo y podría resultar en la combinación de arquitecturas en el mismo entorno.
Tenga en cuenta que MacOS reconocerá automáticamente la arquitectura y se ejecutará a través de Rosetta; no es necesario hacer nada especial.
A más largo plazo, podría intentar solicitar que la python-feedstock incluya una compilación 3.7 para osx-arm64 . Sin embargo, la versión 3.7.12 (septiembre de 2021) fue técnicamente el último lanzamiento de características y ahora ha entrado en la fase de solo mantenimiento (ver PEP 537 ). Además, otros paquetes que construyen variantes específicas de la versión de Python no se construirían para osx-arm64 , por lo que incluso si uno tuviera python=3.7 , los paquetes no estarían allí (al menos no a través de Conda). Básicamente, no apostaría a que nadie tomara esto.
No estoy seguro si esta es la mejor estrategia, pero ejecutar
CONDA_SUBDIR=osx-64 conda
funcionó para mi caso de uso.