【发布时间】:2021-12-31 02:48:02
【问题描述】:
我正在使用python=3.9 为
osx-arm64 架构。
-
conda create -n py39 python=3.9 numpy
-
conda 列表
... numpy 1.21.1 py39h1a24bff_2 ... python 3.9.7 hc70090a_1
到目前为止一切顺利:numpy=1.21.1 是我想要的。现在我想添加
scipy,第一个似乎符合要求:
-
conda search scipy --info
scipy 1.7.1 py39h2f0f56f_2 -------------------------- file name : scipy-1.7.1-py39h2f0f56f_2.conda name : scipy version : 1.7.1 build : py39h2f0f56f_2 build number: 2 size : 14.8 MB license : BSD 3-Clause subdir : osx-arm64 url : https://repo.anaconda.com/pkgs/main/osx-arm64/scipy-1.7.1-py39h2f0f56f_2.conda md5 : edbd5a5399e973d1d0325147b7118f79 timestamp : 2021-08-25 16:12:39 UTC dependencies: - blas * openblas - libcxx >=12.0.0 - libgfortran 5.* - libgfortran5 >=11.1.0 - libopenblas >=0.3.17,<1.0a0 - numpy >=1.19.5,<2.0a0 - python >=3.9,<3.10.0a0
尤其是python >=3.9 和numpy >=1.19 似乎恰到好处。
但是当我尝试安装时
-
conda 安装 scipy
... The following packages will be DOWNGRADED: numpy 1.21.1-py39h1a24bff_2 --> 1.19.5-py39habd9f23_3
(我遇到了numpy=1.19 的各种限制(numba,
熊猫,),我试图避免它。)
为什么 scipy 包对 numpy=1.21 版本不满意
有吗?!
唯一可能的线索是 conda 报告了一个 不同的 python 版本(3.8.11)比我为此环境指定的v3.9:
-
康达信息
活动环境:py39 活动环境位置:.../miniconda3/envs/py39 外壳等级:1 用户配置文件:.../.condarc 填充的配置文件:.../.condarc 康达版本:4.11.0 conda-build 版本:未安装 python版本:3.8.11.final.0
但所有环境的指针似乎都设置正确:
-
(py39) % 哪个蟒蛇
.../miniconda3/envs/py39/bin/python
-
(py39) % 蟒蛇
Python 3.9.7(默认,2021 年 9 月 16 日,23:53:23) [Clang 12.0.0 ] :: Anaconda, Inc. on darwin
谢谢,任何关于损坏的提示将不胜感激!
【问题讨论】:
-
conda infoPython 版本适用于 base 环境,而不是活动环境。指定您想要的内容会更有洞察力,然后返回失败的原因,例如,mamba create -n foo python=3.9.7 numpy=1.21.1 scipy=1.7.1(为此使用 mamba,因为 conda 具有糟糕的冲突诊断报告) -
感谢@merv!我有一种增量方法,但是您的一体化方法
conda create -n scipy python=3.9.7 numpy=1.21.1 scipy=1.7.1清楚地说明了冲突:Package python conflict for: python=3.9.7 numpy=1.21.1 -> python[version='>= 3.8,=3.9, python[version='>=3.8,=3.9, numpy[version='>=1.19.5, -
尝试使用
-c conda-forge。使用mamba似乎可以解决问题(请参阅simulated run)。 -
你的模拟运行是 MacOS=11.6.2;我正在使用蒙特雷 (v12.1)
-
我添加了
CONDA_OVERRIDE_OSX=12.1(模仿蒙特雷)并包含conda create以确保相同的行为:still solves fine。除非您看到涉及 virtual package__osx的冲突消息,否则问题不大可能是 MacOS 版本。