我尝试使用Phylo.draw_graphviz
和BioPython
库中的PyGraphviz
方法创建系统发育树。我阅读了文档并为Windows安装了networkx
,matplotlib
和Graphviz 2.38
。然后,我从Unofficial Windows Binaries for Python Extension Packages安装了PyGraphviz
。我按照Biopython wiki中给出的以下代码:
from Bio import Phylo
import pylab
tree = Phylo.read('allseqs.dnd', 'newick')
Phylo.draw_graphviz(tree)
pylab.show()
但是我一直遇到这个错误:
Traceback (most recent call last):
File "C:\Users\GAMER\Desktop\Methybase\Data\Helicobacter pylori F16\graphtezt.py", line 5, in <module>
Phylo.draw_graphviz(tree)
File "c:\users\gamer\desktop\padai\coding\user\lib\site-packages\Bio\Phylo\_utils.py", line 155, in draw_graphviz
raise MissingPythonDependencyError(
UnboundLocalError: local variable 'MissingPythonDependencyError' referenced before assignment
源代码可用here。我检查了行155
作为回溯建议,这就是它所说的:
raise MissingPythonDependencyError(
"Install PyGraphviz or pydot if you want to use draw_graphviz.")
任何解决方案都将非常感谢
答案 0 :(得分:0)
通过查看该链接上的代码,似乎缺少一条关键线。这应该是from Bio import MissingPythonDependencyError
并且它应该在第154行和第155行之间缩进。问题是该函数在调用之前尚未导入,因为如果模块networkx丢失,它仅在第134行导入