安装 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