【问题标题】:Draw_grapviz : Missing Python dependency errorDraw_grapviz:缺少 Python 依赖项错误
【发布时间】:2014-12-11 00:40:26
【问题描述】:

我正在尝试使用BioPythonPyGraphviz 库中的Phylo.draw_graphviz 方法创建系统发育树。我阅读了文档并为 Windows 安装了 networkxmatplotlibGraphviz 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.")

任何解决方案将不胜感激

【问题讨论】:

    标签: python biopython pygraphviz


    【解决方案1】:

    从该链接上的代码看来,缺少关键行。这应该是from Bio import MissingPythonDependencyError,它应该在第 154 行和第 155 行之间缩进显示。问题是函数在调用之前没有被导入,因为如果模块 networkx 丢失,它只会在第 134 行导入。

    【讨论】:

    • 我尝试编辑代码并添加import,但仍然出现同样的错误。
    • 这很奇怪,我原以为它会抛出异常。但它不是同一个。你确定错误是完全一样的吗?
    • 是的,我仍然遇到同样的错误。更令人困惑的是,在我添加 import 后,155 处的 raise.. 语句变为 156,但错误仍然显示错误位于 raise... 处的留置权 155
    • 看来解释器正在缓存模块。事实上,我几乎可以肯定,因为行号对应于该行上需要重新加载的内容。是否出现任何以 .pyc 或 .pyo 结尾的文件?
    • 我尝试注释掉raise。同样的错误。它怎么会给我一个评论错误?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-29
    • 2012-02-28
    • 2020-08-27
    • 2020-08-17
    相关资源
    最近更新 更多