使用graphviz模块后view没有显示出决策树的图,报错提示:graphviz.backend.execute.ExecutableNotFound: failed to exec,解决办法如下

文章讲述了如何正确安装和配置Graphviz,特别是在PyCharm中使用它来显示sklearn决策树的PDF。首先,需要卸载并重新安装Graphviz,然后从官网下载并安装对应版本的exe程序,不建议使用最新版以避免兼容性问题。接着,配置Graphviz到环境变量中。完成这些步骤后,重启PyCharm,决策树的PDF展示应该能正常工作,但可能出现中文乱码问题,文中提到后续会讨论解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.因为graphviz并不是一个第三方模块,仅仅pip是是会出现一些问题的

graphviz是一个exe的可执行程序,正确流程我们需要去其官网下载它的exe程序,然后进行安装,在将其配置到环境变量中去,即可,在pycharm中执行显示sklearn机器学习算法中的决策树才会正常显示出其pdf样式

解决办法:

1.先卸载Graphviz模块,

pip uninstall graphviz

再重新安装Graphviz模块,执行

pip install graphviz

2.点击 此链接 https://graphviz.org

去到Graphviz的官网下载其对应的exe程序安装包,进行安装,如下图,我们安装的是红色框中的版本,不建议下载最新版的因为可能会出现版本不兼容的问题,然后根据你们的电脑是多少位的就下载相对应的exe程序进行安装;

安装时一直下一步即可;(安装过程中不需要添加环境变量,之后我们会一并设置环境变量)

3.将Graphviz配置到环境变量中去:如下:

找到系统环境变量后

 

配置系统变量

 

到此Graphviz的所有环境变量就配置好了

然后你在去重启你的pycharm,然后执行之前的代码后就会出现pdf的文件了,双击查看即可:

 例如下图的决策树pdf的样式:

 这里通常会出现一个pdf中文出现乱码的问题,很常见我们再下一篇文章会讲一些解决pdf出现中文乱码问题的解决办法

Traceback (most recent call last): File "E:\Anaconda\Lib\site-packages\graphviz\backend\execute.py", line 78, in run_check proc = subprocess.run(cmd, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Anaconda\Lib\subprocess.py", line 548, in run with Popen(*popenargs, **kwargs) as process: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Anaconda\Lib\subprocess.py", line 1026, in __init__ self._execute_child(args, executable, preexec_fn, close_fds, File "E:\Anaconda\Lib\subprocess.py", line 1538, in _execute_child hp, ht, pid, tid = _winapi.CreateProcess(executable, args, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ FileNotFoundError: [WinError 2] 系统找不到指定的文件。 The above exception was the direct cause of the following exception: Traceback (most recent call last): File "C:\Users\cheny\Desktop\数学建模完整\教师\流程().py", line 28, in <module> dot.render('random_forest_regression_workflow', view=True) File "E:\Anaconda\Lib\site-packages\graphviz\_tools.py", line 171, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "E:\Anaconda\Lib\site-packages\graphviz\rendering.py", line 122, in render rendered = self._render(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "E:\Anaconda\Lib\site-packages\graphviz\_tools.py", line 171, in wrapper return func(*args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^ File "E:\Anaconda\Lib\site-packages\graphviz\backend\rendering.py", line 326, in render execute.run_check(cmd, File "E:\Anaconda\Lib\site-packages\graphviz\backend\execute.py", line 81, in run_check raise ExecutableNotFound(cmd) from e graphviz.backend.execute.ExecutableNotFound: failed to execute WindowsPath('dot'), make sure the Graphviz executables are on your systems' PATH 进程已结束,退代码为 1 用你的代码 以上报错 是什么原因
最新发布
05-26
这个报错的根本原因是`graphviz`库无法找到Graphviz软件的可执行文件(`dot`)。虽然你安装了`graphviz` Python库,但它依赖于Graphviz软件本身。以下是解决问题的方法和详细解释。 --- ### 解决方法 #### 方法1:安装Graphviz软件并配置环境变量 1. **下载Graphviz软件**: - 访问[Graphviz官网](https://graphviz.org/download/),根据你的操作系统下载对应的版本。 - 例如,Windows用户可以下载`.msi`安装包。 2. **安装Graphviz**: - 按照安装向导完成安装。 - 默认情况下,Graphviz会安装到类似于`C:\Program Files (x86)\Graphviz\bin`的路径。 3. **配置系统环境变量**: - 打开“系统属性” -> “高级” -> “环境变量”。 - 在`Path`变量中添加Graphviz的`bin`目录路径。例如:`C:\Program Files (x86)\Graphviz\bin`。 4. **验证安装**: - 打开命令提示符,输入以下命令检查是否成功: ```python dot -version ``` - 如果显示Graphviz版本信息,则安装成功。 5. **重新运行代码**: - 完成上述步骤后,重新运行你的Python代码,应该不会再现`ExecutableNotFound`错误。 --- #### 方法2:指定Graphviz可执行文件路径 如果你不想修改系统的环境变量,可以通过`graphviz`库的`executable`参数指定`dot`可执行文件的路径。 ```python from graphviz import Digraph # 创建Digraph对象,并指定dot可执行文件路径 dot = Digraph(comment='Random Forest Regression Workflow', format='png', executable=r'C:\Program Files (x86)\Graphviz\bin\dot.exe') # 添加节点和边(与之前的代码相同) dot.node('1', '输入数据') dot.node('2', '分类变量编码 & 数值变量标准化') dot.node('3', '构建随机森林回归模型') dot.node('4', '数据集划分') dot.node('5', '自助抽样 (Bootstrap Sampling)') dot.node('6', '特征值随机选择') dot.node('7', '构建决策树') dot.node('8', 'Permutation Importance 验证') dot.node('9', '分析结果') dot.edge('1', '2') dot.edge('2', '3') dot.edge('3', '4') dot.edge('4', '5') dot.edge('5', '6') dot.edge('6', '7') dot.edge('7', '8') dot.edge('8', '9') # 渲染并保存 dot.render('random_forest_regression_workflow', view=True) ``` --- ### 给解释 1. **错误原因**: - `graphviz`库需要调用Graphviz软件中的`dot`可执行文件来生成形。 - 如果系统找不到`dot`文件(即未正确安装Graphviz或未配置环境变量),就会抛`ExecutableNotFound`错误。 2. **解决思路**: - 确保Graphviz软件已正确安装。 - 将Graphviz的`bin`目录添加到系统环境变量中,或者在代码中直接指定`dot`可执行文件的路径。 3. **为什么需要Graphviz软件**: - `graphviz` Python库只是一个接口,它通过调用Graphviz软件的核心功能(如`dot`命令)来生成形。 - 因此,必须安装Graphviz软件才能正常使用该库。 --- ###
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值