3

我目前正在开发一个 Django 项目,该项目需要获取 InChI 字符串并将其转换为分子的功能,但我正在使用的包似乎与其功能有问题MolFromInchi。每当我尝试使用这个函数时,python 往往会生成这个回溯:

前任。

>>> from rdkit.Chem.inchi import MolFromInchi
>>> mol = MolFromInchi('InChI=1S/O2Si/c1-3-2')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Users\tcherry\repos\dataslate_django\venv\my-rdkit-env\lib\site-packages\rdkit\Chem\inchi.py", line 71, in MolFromInchi
    mol, retcode, message, log = rdinchi.InchiToMol(inchi, sanitize, removeHs)
TypeError: No to_python (by-value) converter found for C++ type: class boost::shared_ptr<class RDKit::ROMol>

这个错误似乎来自rdkit包的源代码,但我想知道是否有什么我可以做的来规避或缓解这个问题,同时仍然能够将功能合并MolFromInchi到我的项目中。

注意:按照RDKit 文档上发布的如何使用 Conda 安装 RDKit 的说明后,我能够重现此错误,并且此问题与 RDKit 的最新版本(2020.03.1)有关。

4

1 回答 1

0

事实证明,我遇到这个问题的原因是,每当您更改源代码(我已经这样做以解决我的项目的另一个问题)时,这些更改都会影响 .conda 缓存文件夹,这意味着如果您如果要卸载并重新安装 conda 包,安装过程将引用缓存文件夹。

于 2020-04-10T15:08:09.560 回答