代码之家  ›  专栏  ›  技术社区  ›  Murat Uzun

在windows 10上的jupyter笔记本中导入graphviz对我不起作用,我缺少什么吗?

  •  0
  • Murat Uzun  · 技术社区  · 4 年前

    我不知道为什么我会被解雇 AttributeError: module 'graphviz.backend' has no attribute 'ENCODING' 当我尝试将回归树导出到graphviz时。我尝试重新安装graphviz和sklearn,但没有解决问题。谢谢你的建议。


    AttributeError                            Traceback (most recent call last)
    <ipython-input-4-9d9e0becf9b6> in <module>
          3 # graphviz is the drawing tool
          4 from sklearn.tree import export_graphviz
    ----> 5 import graphviz
          6 dot_data = export_graphviz(
          7     model,
    
    C:\ProgramData\Anaconda3\lib\site-packages\graphviz\__init__.py in <module>
         25 """
         26 
    ---> 27 from .dot import Graph, Digraph
         28 from .files import Source
         29 from .lang import escape, nohtml
    
    C:\ProgramData\Anaconda3\lib\site-packages\graphviz\dot.py in <module>
         30 
         31 from . import backend
    ---> 32 from . import files
         33 from . import lang
         34 
    
    C:\ProgramData\Anaconda3\lib\site-packages\graphviz\files.py in <module>
         20 
         21 
    ---> 22 class Base(object):
         23 
         24     _engine = 'dot'
    
    C:\ProgramData\Anaconda3\lib\site-packages\graphviz\files.py in Base()
         26     _format = 'pdf'
         27 
    ---> 28     _encoding = backend.ENCODING
         29 
         30     @property
    
    AttributeError: module 'graphviz.backend' has no attribute 'ENCODING'
    
    0 回复  |  直到 4 年前
        1
  •  2
  •   macserv    4 年前

    我在使用时也有类似的问题 pipdeptree .似乎有一个 very recent change graphviz ,意在混淆其内部。引用模块作者在 issue #149 (与此类似的问题 backend.FORMATS ):

    graphviz的子模块不是公共API的一部分(参见。 https://graphviz.readthedocs.io/en/stable/api.html ).请遵守记录的界面并使用graphviz。格式,请参见 https://graphviz.readthedocs.io/en/stable/api.html#graphviz.FORMATS ).

    在短期内,你可以降低你的信用评级 格拉夫维兹 看起来像什么 0.18 是子模块不透明之前的最后一个标签。

    接下来,您可能希望创建一个问题和/或针对 sklearn-pandas 要替换的存储库 graphviz.backend.FORMATS 具有 graphviz.FORMATS ,甚至只是封住它的帽子 格拉夫维兹 依赖于 0.18 .

        2
  •  0
  •   michaelosthege    4 年前

    我也犯了同样的错误 python-graphviz==0.16 .OP没有包含版本号,但看起来回溯中的行号与v0匹配。16

    请注意,回溯显示错误在 python-graphviz 包,所以它更有可能是一个依赖性问题。

    具有 python-graphviz==0.19 我不知道导入错误。

    旁注:版本由 conda list pip list 这可能会产生误导。如有疑问,请检查 __init__.py .

        3
  •  0
  •   Anoop Dixit    4 年前

    我用另一种方式解决了这个问题:

    1. 通过以下路径在我的电脑上打开graphviz文件(路径可能不同) “C:\Users\Anoop\anaconda3\Lib\site packages\graphviz\backend”
    2. 复制编码。从这里开始
    3. 将此文件粘贴到后端 “C:\Users\Anoop\anaconda3\Lib\site packages\graphviz\backend”
    4. 问题解决了
        4
  •  0
  •   Bulo    4 年前

    我也有同样的问题,而且我对Python/conda世界非常陌生,所以这可能会帮助像我这样的新手。。。

    我从以下网站下载了graphviz 0.19.1: https://pypi.org/project/graphviz/#files

    来源分布:graphviz-0.19.1。zip(247.8KB视图哈希) download link

    并在“C:\Users\Nino\anaconda3\Lib\site packages”中用这个版本替换了graphviz文件夹(对您来说会有所不同),并将其重命名,使其再次命名为graphviz。

    “C:\Users\Nino\anaconda3\Lib\site packages\graphviz”