我一直在拿UnboundLocalError: local variable 'res' referenced before assignment。
但是,我绝对肯定在赋值之前没有引用变量!
这是我的密码:
def get_models(self,x=None,y=None):
bioservices_up_obj = UniProt()
bioservices_quickgo_obj = QuickGO()
res = bioservices_quickgo_obj.Annotation_from_protein(protein=str(Brick.part_attrib(self,'uniprot_id')))
go_id = []
go_number = len(res['goID'])
for i in range(go_number):
go_id.append(str(res.iloc[i]['goID']))
results = bioservices_up_obj.search(go_id[:go_number],format="tab",columns="id",sort="score",maxTrials=2)
print results所有其他变量似乎都打印得很好,但出于某种原因,我一直得到这个错误。
发布于 2014-03-14 00:05:58
在检查您正在使用的库的源之后
File "/usr/local/lib/python2.7/dist-packages/bioservices/uniprot.py", line 470, in search看来第470行实际上确实有一个bug。同一文件中的第459行在最新版本中被注释掉,这似乎导致了错误。
从这里下载tarball,打开uniprot.py,观察到:
#res = s.request("/uniprot/?query=zap70+AND+organism:9606&format=xml", params)
trials = 3
while trials<maxTrials:
try:
res = self.request("uniprot/?query=%s" % query + "&" + params, "txt")
trials = maxTrials + 1
except:
self.logging.warning("Trying again...")
import time
time.sleep(2)
trials += 1
return res注意注释的第一行(文件中的第459行)。您可以尝试取消注释这一行,但我不熟悉库,所以我不知道这可能会做什么。
项目bug跟踪器是这里,也许您可以提交一个bug报告。
发布于 2014-03-13 23:59:25
我建议检查整个回溯消息,我认为异常来自另一种方法。
对不起:,我不能添加评论。
https://stackoverflow.com/questions/22393473
复制相似问题