在MacOS Mojave上安装cvxpy stlibc++时出现错误

6

在尝试在Mac上使用pip install安装cvxpy包时,我收到以下错误消息:

warning: include path for stdlibc++ headers not found; pass '-std=libc++' on the command line to use the libc++ standard library instead [-Wstdlibcxx-not-found]
In file included from cvxpy/cvxcore/src/cvxcore.cpp:15:
cvxpy/cvxcore/src/cvxcore.hpp:18:10: fatal error: 'vector' file not found
#include <vector>
^~~~~~~~
1 warning and 1 error generated.
error: command '/usr/bin/clang' failed with exit status 1

Mac正在运行OS Mojave。

3个回答

11

我使用以下步骤解决了这个问题,

首先,我尝试更改标志以指示安装使用 libc++

CFLAGS=-stdlib=libc++ pip install cvxpy

然后它抱怨了一个invalid deployment target for -stdlib=libc++ (requires OS X 10.7 or later)

然后我运行了以下命令来设置部署目标,

export MACOSX_DEPLOYMENT_TARGET=10.10

然后再次运行第一个命令(CFLAGS=-stdlib=libc++ pip install cvxpy) 便成功安装了cvxpy。


1

我整个周末都在苦苦挣扎,到目前为止最成功的尝试是在安装了anaconda环境后使用以下两行命令安装cvxpy:

conda install -c conda-forge lapack
conda install -c cvxgrp cvxpy

谢谢。但我没有使用Anaconda发行版。我在cvxpy的pip安装中遇到了问题。 - dheena
已更新Mac OS命令行工具到版本10.1。更新后,执行 pip install cvxpy 安装非常顺利。 - dheena
1
在执行 pip install cvxpy 命令之前,使用 CFLAGS=-stdlib=libc++,例如 CFLAGS=-stdlib=libc++ pip install cvxpy,也可能有效。 - dheena
这对我在 OS X 10.14 上构建 fancyimpute 很有用! - Brian Keegan

0
我在Mojave上遇到了类似的错误。问题在于由XCode命令行工具(包括clang)安装的头文件的位置已经改变。我通过将以下内容添加到我的~/.bash_profile并打开一个新的shell来使其正常工作:

export CFLAGS="-I/usr/local/include -L/usr/local/lib -I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include"

这将向CLANG添加标志,告诉它运行xcrun命令以查找头文件。它还将homebrew openssl头文件添加到clang路径中,这对于此情况可能不是必需的(并假定您已经安装了它们)。
参见:https://dev59.com/olUK5IYBdhLWcg3wyidl#52871908

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接