RDKit中MolToXYZFile参数匹配错误求助:SMILES转XYZ文件失败
解决RDKit中MolToXYZFile的Boost.Python参数错误
问题原因
错误提示明确显示,MolToXYZFile的C++签名要求必须传入分子对象和输出文件名两个必填参数(第三个参数confId为可选,默认值-1),你当前的代码只传入了分子对象,缺少文件名参数,导致参数不匹配。
修正后的代码
import numpy as np import pandas as pd from rdkit import Chem from rdkit.Chem import AllChem mol = Chem.MolFromSmiles('ClCCl') mol = Chem.AddHs(mol) AllChem.EmbedMolecule(mol) AllChem.MMFFOptimizeMolecule(mol) # 补充输出文件名参数,这里以二氯甲烷的xyz文件为例 Chem.MolToXYZFile(mol, "dichloromethane.xyz")
补充说明
- 无需更换Boost版本,该问题与Boost版本无关,仅为参数传递错误导致。
- 如果需要指定特定构象输出,可以添加第三个参数
confId,例如:Chem.MolToXYZFile(mol, "dichloromethane.xyz", confId=0)
内容的提问来源于stack exchange,提问作者ki092
相关产品推荐
相关产品推荐

