windows python3库pydot运行出现:FileNotFoundError: [WinError 2] "dot" not found in path.---完美解决

windows python3库pydot运行出现:FileNotFoundError: [WinError 2] "dot" not found in path.---完美解决

测试代码

#代码可以直接复制运行

from sklearn.datasets import load_iris
from sklearn import tree
from sklearn.externals.six import StringIO
import pydot
#import StringIO

iris = load_iris()
clf = tree.DecisionTreeClassifier()
clf = clf.fit(iris.data, iris.target)

dot_data = StringIO(initial_value=’’, newline=’\n’)
tree.export_graphviz(clf, out_file=dot_data)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph[0].write_dot(‘iris_simple.dot’)
graph[0].write_png(‘iris_simple.png’)

若报错如下(“dot” not found in path):

Traceback (most recent call last):
File “C:\Users\78754\AppData\Local\conda\conda\envs\tensorflow\lib\site-packages\pydot.py”, line 1914, in create
working_dir=tmp_dir,
File “C:\Users\78754\AppData\Local\conda\conda\envs\tensorflow\lib\site-packages\pydot.py”, line 136, in call_graphviz
**kwargs
File “C:\Users\78754\AppData\Local\conda\conda\envs\tensorflow\lib\subprocess.py”, line 676, in init
restore_signals, start_new_session)
File “C:\Users\78754\AppData\Local\conda\conda\envs\tensorflow\lib\subprocess.py”, line 957, in _execute_child
startupinfo)
FileNotFoundError: [WinError 2] 系统找不到指定的文件。

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File “D:\workspace python\ssd_py_server\src\test.py”, line 437, in
DTtest()
File “D:\workspace python\ssd_py_server\src\test.py”, line 435, in DTtest
graph[0].write_png(‘iris_simple.png’)
File “C:\Users\78754\AppData\Local\conda\conda\envs\tensorflow\lib\site-packages\pydot.py”, line 1734, in new_method
encoding=encoding)
File "C:\Users\78754\AppData\Local\conda\conda\envs\tensorflow\lib\site-packages\pydot.py", line 1817, in write
s = self.create(prog, format, encoding=encoding)
File “C:\Users\78754\AppData\Local\conda\conda\envs\tensorflow\lib\site-packages\pydot.py”, line 1921, in create
raise OSError(*args)
FileNotFoundError: [WinError 2] “dot” not found in path.

解决方法:

  1. 确认在Graphviz官网下载并安装了对应操作系统(Windows,Linux,Mac)的Graphviz软件。官网地址:https://www.graphviz.org/。直接百度也可找到。安装过程中有一个选项,建议选择添加至所有人。
  2. 将软件安装目录的bin文件添加到系统环境中。如我的电脑是Windows系统,Graphviz安装在D:\Program Files (x86)\Graphviz2.38,该目录下有bin文件,将该路径添加到系统环境变量中,即D:\Program Files (x86)\Graphviz2.38\bin。
  3. 使用pip命令安装以下模块:
    pip install pydot-ng
    pip install graphviz
    pip install pydot
  4. 安装完成后打开cmd,输入dot.exe是否报错找不到命令,若不报错则说明dot.exe可以正常调用,按回车后正确结果如下:
    在这里插入图片描述

依照上述步骤基本不会有问题,若仍报错"dot" not found in path,而不是"dot.exe"程序,那么在提示目录下(如前文报错内容加粗目录)找到pydot.py文件的源码,在pydot.py中找到类Dot的定义,如下(截图已经修改):
在这里插入图片描述
如红色标记部分,原pydot.py中类Dot的成员变量self.prog = ‘dot’,因为我的程序还报错,所以上图就是修改结果,即self.prog = ‘dot.exe’,再次测试不会报错。

欢迎各位小伙伴评论

参考博主:此处为参考博主链接,感谢

  • 15
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 14
    评论
Python的FileNotFoundError: [WinError 2]是一个常见的错误,意味着系统找不到指定的文件。这个错误通常在以下几种情况下发生: 1. 文件路径错误:检查你的代码中指定的文件路径是否正确。确保文件名、文件夹路径和文件格式都是正确的。 2. 文件不存在:确保你指定的文件实际上存在于指定的路径下。可以使用文件管理器或命令行工具来验证文件是否存在。 3. 权限问题:如果你没有足够的权限访问文件或文件夹,可能会导致该错误。确保你具有读取或写入指定文件的权限。 4. 缺少依赖:有时候,一些或外部程序可能需要安装或配置才能正确处理特定的文件类型。检查你的环境是否缺少必要的依赖关系。 解决这个错误的方法可以包括: 1. 检查文件路径,并确保路径正确无误。 2. 确保文件存在,并且你具有足够的权限来访问它。 3. 如果你使用了特定的或工具来处理文件,确保你已经正确地安装和配置了这些依赖关系。 4. 如果你仍然无法解决问题,可以尝试在互联网上搜索相关的错误信息,看看是否有其他人遇到了类似的问题,并提供了解决方案。 在编写代码时,确保仔细检查和处理错误,以便在发生问题时能够提供有用的错误消息和处理方法,这样可以更轻松地调试和修复代码中的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [解决 FileNotFoundError: [WinError 2] 系统找不到指定的文件](https://blog.csdn.net/qq_43403025/article/details/100023633)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [windows python3pydot运行出现FileNotFoundError: [WinError 2] "dot" not found in path.](https://blog.csdn.net/sinat_38653840/article/details/84776806)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值