首页 > 解决方案 > 没有为 scs==2.1.4 找到匹配的分布

问题描述

我在 Windows 10 64 位上使用 conda 4.10.3。

我正在尝试使用这两个文件创建一个 conda 环境:ml4t.ymlml4t-base.yml

首先,我尝试过:

mamba env create -f installation/windows/ml4t.yml

我收到一个错误,所以我尝试了:

mamba env create -f installation/ml4t-base.yml

第一个文件ml4t.yml是使用笔记本中使用的最新版本库创建环境(截至 2021 年 4 月)。

第二个文件,ml4t-base.yml,是使用您阅读本文时的最新库版本创建环境。

您可以在此处找到有关安装的更多信息。

pip在这两种情况下,我的包都有错误scs

对于第一个文件,ml4t.yml我收到以下错误消息:

错误:没有为 scs==2.1.4 找到匹配的分布

第二个我收到此错误消息:

ERROR: Failed building wheel for scs
    ERROR: Command errored out with exit status 1:
     command: 'D:\Programs\anaconda3\envs\ml4t\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\liber\\AppData\\Local\\Temp\\pip-install-j5wtb8f1\\scs_401115d47d5d45089d65831a3a0a65f4\\setup.py'"'"'; __file__='"'"'C:\\Users\\liber\\AppData\\Local\\Temp\\pip-install-j5wtb8f1\\scs_401115d47d5d45089d65831a3a0a65f4\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\MyUser\AppData\Local\Temp\pip-record-5xnj3hxm\install-record.txt' --single-version-externally-managed --compile --install-headers 'D:\Programs\anaconda3\envs\ml4t\Include\scs'
         cwd: C:\Users\MyUser\AppData\Local\Temp\pip-install-j5wtb8f1\scs_401115d47d5d45089d65831a3a0a65f4\
    Complete output (27 lines):
    Namespace(blas64=False, extraverbose=False, float32=False, gpu=False, int32=False, openmp=False, root_dir='./', scs=False)
    using blas_opt / lapack_opt
    blas_opt / lapack_opt install failed, trying blas / lapack
    running install
    running build
    running build_py
    creating build
    creating build\lib.win-amd64-3.8
    copying scs.py -> build\lib.win-amd64-3.8
    running build_ext
    No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
    building '_scs_direct' extension
    creating build\temp.win-amd64-3.8
    creating build\temp.win-amd64-3.8\Release
    creating build\temp.win-amd64-3.8\Release\src
    creating build\temp.win-amd64-3.8\Release\linsys
    creating build\temp.win-amd64-3.8\Release\linsys\direct
    creating build\temp.win-amd64-3.8\Release\linsys\direct\external
    cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DPYTHON -DCTRLC=1 -DCOPYAMATRIX -DDLONG=1 -I./ -I./include -ID:\Programs\anaconda3\envs\ml4t\lib\site-packages\numpy\core\include -I./linsys -I./linsys/direct/ -I./linsys/direct/external/ -ID:\Programs\anaconda3\envs\ml4t\include -ID:\Programs\anaconda3\envs\ml4t\include /Tcscsmodule.c /Fobuild\temp.win-amd64-3.8\Release\scsmodule.obj -O3
    running install
    running build
    running build_py
    running build_ext
    No module named 'numpy.distutils._msvccompiler' in numpy.distutils; trying from distutils
    building '_scs_direct' extension
    cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DPYTHON -DCTRLC=1 -DCOPYAMATRIX -DDLONG=1 -I./ -I./include -ID:\Programs\anaconda3\envs\ml4t\lib\site-packages\numpy\core\include -I./linsys -I./linsys/direct/ -I./linsys/direct/external/ -ID:\Programs\anaconda3\envs\ml4t\include -ID:\Programs\anaconda3\envs\ml4t\include /Tcscsmodule.c /Fobuild\temp.win-amd64-3.8\Release\scsmodule.obj -O3
    error: Command "cl.exe /c /nologo /Ox /W3 /GL /DNDEBUG /MD -DPYTHON -DCTRLC=1 -DCOPYAMATRIX -DDLONG=1 -I./ -I./include -ID:\Programs\anaconda3\envs\ml4t\lib\site-packages\numpy\core\include -I./linsys -I./linsys/direct/ -I./linsys/direct/external/ -ID:\Programs\anaconda3\envs\ml4t\include -ID:\Programs\anaconda3\envs\ml4t\include /Tcscsmodule.c /Fobuild\temp.win-amd64-3.8\Release\scsmodule.obj -O3" failed with exit status 127
    ----------------------------------------
ERROR: Command errored out with exit status 1: 'D:\Programs\anaconda3\envs\ml4t\python.exe' -u -c 'import io, os, sys, setuptools, tokenize; sys.argv[0] = '"'"'C:\\Users\\liber\\AppData\\Local\\Temp\\pip-install-j5wtb8f1\\scs_401115d47d5d45089d65831a3a0a65f4\\setup.py'"'"'; __file__='"'"'C:\\Users\\liber\\AppData\\Local\\Temp\\pip-install-j5wtb8f1\\scs_401115d47d5d45089d65831a3a0a65f4\\setup.py'"'"';f = getattr(tokenize, '"'"'open'"'"', open)(__file__) if os.path.exists(__file__) else io.StringIO('"'"'from setuptools import setup; setup()'"'"');code = f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' install --record 'C:\Users\MyUser\AppData\Local\Temp\pip-record-5xnj3hxm\install-record.txt' --single-version-externally-managed --compile --install-headers 'D:\Programs\anaconda3\envs\ml4t\Include\scs' Check the logs for full command output.

failed

CondaEnvException: Pip failed

您可以在pastebin中找到完整的输出。

似乎numpy版本和之间存在兼容性错误scs,如您在此处看到的:

目前,安装 SCS 需要安装 numpy<1.20。

我试图将第一个文件中的 numpy 版本更改为,ml4t.yml- numpy=1.19.5我仍然得到同样的错误。

我该如何解决这个问题?

标签: pythonnumpypipanaconda

解决方案


我已经解决了移动大部分 pip 包以使用 mamba 安装它们的问题。

我已更改原始文件ml4t.yml让该pip部分如下:

  - pip:
    - backtrader==1.9.76.123
    - livelossplot==0.5.4
    - pyportfolioopt==1.4.1
    - qdldl==0.1.5.post0
    - osqp==0.6.2.post0
    - pymdptoolbox==4.0b3

换句话说,我已将 conda 中可用的所有软件包从该pip部分移动到该dependencies部分。


推荐阅读