使用Poetry虚拟环境时,pyreverse无法调用graphviz生成.png类图的问题求助
先跟大家说下我的环境和操作背景:
我目前用poetry作为项目的包管理和依赖管理工具,已经在项目的虚拟环境里安装了graphviz和dot两个库,用的命令是:
poetry add graphvizpoetry add dot
为了确认安装成功,我分别运行了两个命令:
- 执行
poetry show graphviz,输出如下:
name : graphviz version : 0.20.3 description : Simple Python interface for Graphviz
- 执行
poetry show dot,输出如下:
name : dot version : 0.3.0 description : Providing context to models...
接下来是遇到的问题:
我用pylint包里的pyreverse工具生成类图,这个工具依赖graphviz。当默认生成.dot格式文件时,一切正常,比如用这个命令:pyreverse --all-ancestors --only-classnames --verbose ./root_folder
但如果我想直接生成.png格式的类图,用命令:pyreverse -o png --all-ancestors --only-classnames --verbose ./root_folder
就会弹出错误:'Graphviz' needs to be installed for your chosen output format.
我的最终目标是把这个类图集成到项目仓库的readme.md里,每次推送到远程仓库时自动生成,而且这个仓库要在不同操作系统的设备上运行。
我之前查过资料,说除了用包管理器安装graphviz库之外,还需要下载对应的程序文件,把它的bin目录添加到用户的PATH环境变量里。我自己用的是Windows机器,也尝试下载了最新的graphviz文件,解压到了Program Files文件夹,并且把它的bin路径加到了用户级的PATH里,但问题还是没解决。
现在我有几个疑问想请教大家:
- 这个问题是不是因为我用了Poetry的虚拟环境导致的?
- 我把graphviz安装在
Program Files而不是Program Files (x86),会不会是问题所在?
【更新信息】
- 运行
where graphviz和where dot命令,都提示找不到对应程序 - 我虽然用的是Windows机器,但一直是在开启WSL(模拟Ubuntu环境)的状态下运行代码的
备注:内容来源于stack exchange,提问作者nedhos

