安装 cppyy

安装 cppyy#

安装 cppyy 需要(现代的)C++ 编译器。通过 conda-forge 进行安装时,conda 将为您安装编译器,以匹配其他 conda-forge 包。使用 pip 和从 PyPI 获取的 wheels 时,您至少需要 gcc5、 clang5 或 MSVC’17。

备注

在 Windows 上,需要从带有 MSVC 设置的环境中打开命令提示符来运行 Python(或直接运行 Python),否则编译器将无法访问。

当从源代码安装时,唯一要求是需要一个支持 C++14 的编译器,以便于构建 LLVM。

在 Linux 或 MacOS 上使用 CPython,通过 Anaconda(或 miniconda)上的 conda-forge 安装 cppyy 可能是迄今为止最简单的方法。目前还没有适用于 Windows 的 conda 配方,但即将推出,因此暂时使用 pip(见下文)。PyPI 始终拥有权威版本(conda-forge 从那里获取源代码),所以 conda-forge 有时可能会滞后于 PyPI。如果您绝对需要最新发布版本,请使用PyPI或考虑从源代码构建。

要使用conda进行安装,创建和/或激活您的(新)工作环境,并从conda-forge频道进行安装:

conda install -c conda-forge cppyy

或者

python -m pip install cppyy

尽管建议通过conda-forge安装cppyy,但在Anaconda/miniconda下使用pip进行构建/安装也是可能的。

典型的Python扩展只暴露C接口以供通过Python C-API使用,只需要调用约定(当然还有Python C-API版本)匹配才能实现二进制兼容。在这里,cppyy有所不同,因为它暴露了C++ API:因此它需要一个与在构建时使用的C++编译器ABI兼容的C++运行时。

通过conda-forg可以获得一组现代编译器,但它们仅用于conda-build。特别是,安装了相应的运行时(在构建时通过rpath使用),但没有设置。也就是说,conda编译器被添加到PATH中,但它们的库未添加到LD_LIBRARY_PATH(Mac、Linux;在MS Windows上两者都是PATH)。因此,除非您显式设置 LD_LIBRARY_PATH(在Windows上是PATH),例如通过添加 $CONDA_PREFIX/lib,否则您会得到混合在同一个构建环境中的conda编译器和系统库。请注意,conda文档不推荐这样做。此外,conda-forge上的编译器不是纯发行版:头文件已被修改,这可能导致解析问题,例如如果您的系统C库不支持C11。

尽管如此,在上述注意事项的前提下,如果您的系统C/C++运行时足够新,以下方法可以正常工作:

conda install -c conda-forge compilers
python -m pip install cppyy