当我尝试运行共价对接脚本时,我收到此python错误。但是,如果我连接到新网络,它会运行一次,但第二次运行时会出现相同的错误。我不知道这是一个网络问题还是python问题。
我已经卸载了Windows 7 64位的网络驱动程序并重新安装了它。我已经下载了opencv并运行了cv.pyd。我使用安装了openbabel的python版本2.7 32位
C:\Users\najum.najumPC>C:\adCovalentDockResidue\adcovalent\prepareCovalent.py --ligand NMC.mol2 --ligindices 1,2 --receptor protein.pdb --residue B:CYS:199 --outputfile ligcovalent_NMC.pdb
Processing residue B:CYS:199
[start] output filename is: ligcovalent_NMC.pdb
Traceback (most recent call last):
File "C:\adCovalentDockResidue\adcovalent\prepareCovalent.py", line 1318, in < module> x = CovalentDockingMaster()
File "C:\adCovalentDockResidue\adcovalent\prepareCovalent.py", line 870, in __init__self.start()
File "C:\adCovalentDockResidue\adcovalent\prepareCovalent.py", line 1261, in start self.processResidues()
File "C:\adCovalentDockResidue\adcovalent\prepareCovalent.py", line 1297, in processResidue aligner = self.x =CovalentDockingMaker(**self.alignerArgs)
File "C:\adCovalentDockResidue\adcovalent\prepareCovalent.py", line 229, in _init__self.initResidue()
File "C:\adCovalentDockResidue\adcovalent\prepareCovalent.py", line 266, in initResiduechain, res = string.split(":")
ValueError: too many values to unpack
在你的情况下,没有网络错误......
如果你分析你得到的Traceback,它会告诉你在执行initResiduechain, res = string.split(":")
时代码在prepareCovalent.py的第266行失败了。
这是什么意思?
这意味着如果我们有一个示例测试字符串
test = "a:b:c:d"
操作test.split(":")
操作将返回4个值! (即“a”,“b”,“c”,“d”)
因此,尝试做:
x, y = test.split(":")
将导致您遇到的错误,着名的太多值来解压错误!
否则,执行x, y, z, t = test.split(":")
将成功,您将不会遇到任何错误。
无论如何,我建议你重新考虑你做分割操作的方式,考虑一个有用的列表,它将封装所有返回的值,例如:
l = []
l = test.split(":")
这将顺利运行,您只需通过简单的索引即可访问所有单个元素:
l[0] # OUPUTS "a"
l[1] # OUPUTS "b"
l[2] # OUPUTS "c"
l[3] # OUPUTS "d"