首页 > 解决方案 > 如何在 vs 代码中使用 sysargv 模块?

问题描述

我一直在尝试根据分子与参考分子的结构相似性来过滤分子数据库,但脚本无法正常工作,因为 od 警告“发生异常,请使用 %tb 查看完整回溯。” 我在 vs 代码中使用 jupyter notebook。

有问题的行是: if len(sys.argv)!=5 :
sys.exit("usage : python tetheredMinimization.py reference.sdf output1.sdf outputtethered.sdf outputnontethered.sdf")

import sys 
from rdkit import Chem 
from rdkit.Chem import AllChem 
from rdkit.Chem import rdFMCS 
from rdkit.Chem.rdMolAlign import AlignMol

如果 len(sys.argv)!=5 :
sys.exit("用法:python tetheredMinimization.py reference.sdf output1.sdf outputtethered.sdf outputnontethered.sdf")

ratioThreshold=0.20

参考 = Chem.MolFromMolFile(sys.argv[1], removeHs=True)
配体 = Chem.SDMolSupplier(sys.argv[2],removeHs=True)

w=Chem.SDWriter(sys.argv[3]) wnt=Chem.SDWriter(sys.argv[4])

标签: pythonvisual-studio-codejupyter-notebookrdkit

解决方案


如果您使用 Jupyter,您可能不想使用sys.argv,这通常用于检索命令行参数。在 Jupyter 中使用时,您很可能会得到用于启动 IPython 的参数,这也可能不满足len(sys.argv) == 5. 而不是使用它,只需在代码中定义您的参数并将您使用sys.argv过的所有位置替换为正确的变量。


推荐阅读