相信大家在使用该包的时候都会遇到这个问题,为啥pip不能安装这个包,一定要用conda安装呢? 这是一个很重要的问题,但答案却不是特别令人满意。 核心问题是RDKit不是一个纯python包;它混合了python和一些编译后的扩展模块(共享库)。在Mac和Linux上,那些编译后的扩展模块依赖于另一组包含核心RDKit功能的共享库。在所有平台上,扩展模块也依赖于一些共享库,其中包含来自boost库的功能。所有这些库,在适当的版本中,需要安装在适当的位置,以便from rdkit import Chem能够在Python工作。这很复杂,不是pip设计能处理的事情。因此,您不能仅仅“pip install rdkit”。 幸运的是,我们确实有一个解决方案:使用conda来安装RDKit。Conda被设计用来解决上面描述的跨平台依赖关系管理问题。它做得很好。如果你对conda有疑虑,请看看这篇文章,以确保你的担忧不是基于关于conda的一个常见的神话或误解: https://jakevdp.github.io/blog/2016/08/25/conda-myths-and-misconceptions/ 这篇文章很长,但很容易读。指出了如何在标准python安装conda(pip install conda),创建conda环境。因此,不需要安装anaconda或miniconda。 PS 如果在扩展模块中静态链接RDKit代码,理论上讲,但它会极大地增加包的大小(静态链接的Windows conda包大约是Linux或Mac的两倍大)。另外,我们仍然需要担心Boost依赖项。 除了Boost::Python之外的所有库都可以被静态链接。但是,如果你想要跨扩展模块共享类型,Boost::Python需要动态链接。这里有实现链接。