matatabipower
@matatabipower

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

VScode pythonでgraphvisを使いたい

解決したいこと

VSCode、pythonでgraphvizをインポートしたいのですが、以下のエラーが出ます。

発生している問題・エラー

ModuleNotFoundError: No module named 'graphviz'

該当するソースコード

#学習
bst = xgb.train(param, dtrain)


#予測
dtest = xgb.DMatrix(test_x)
pred = bst.predict(dtest)


#精度の確認
from sklearn.metrics import accuracy_score
from sklearn.metrics import r2_score

score = accuracy_score(test_y, pred)
print('score:{0:.4f}'.format(score))

#重要度の可視化
xgb.plot_importance(bst,
                    importance_type='gain',
                    show_values=True)
plt.show()

print(pred.shape)
print(pred)


print(test_y, pred)
print(r2_score(test_y,pred))

import graphviz
xgb.to_graphviz(bst)

自分で試したこと

アナコンダプロンプトでgraphvizのインストールはできたのですが、
VSCodeでそれをインポートしようとするとエラーが出ます。
graphvizのbinフォルダにパスを通してコマンドプロンプトで dot -Vを入力して問題ありませんでした。
VSCodeにはgraphvizを使うための拡張機能を入れてあります。
VSCodeを使い始めたとき人にセッティングをしてもらったので、モジュールをどのフォルダに入れるべきか、
についてもよくわかっておりません...
原因がお分かりの方がいらしたらお教えください。
よろしくお願いいたします。

0

1Answer

import graphvizができる環境と、できない環境のそれぞれで、以下のコードを実行して、sys.pathの結果を比べてみてはどうですか?

import sys
print(sys.path)

import graphvizができる環境では、graphvizに対するパスが通っているはずなので、それを特定し、import graphvizできない環境の先頭で、そのパスを追加すればimportできるはずです。

import sys
sys.path.append('graphvizに対するパス')
print(sys.path)
import graphviz

ただし、根本対策にはならない可能性はあります。

1Like

Comments

  1. @matatabipower

    Questioner

    module not foundは出なくなりました!ありがとうございます。
    しかし今度は

    Traceback (most recent call last):
      File "c:\Users\ユーザー名\OneDrive - ユーザー名\python\20231003全部.py", line 78, in <module>
        xgb.to_graphviz(bst)
    raise ImportError('You must install graphviz to plot tree') from e
    ImportError: You must install graphviz to plot tree
    

    というエラーが出ています。
    よくわかりません。。。

  2. @matatabipower

    Questioner

    あっアナコンダナビゲーターからVSCodeを開いてやってみたらできました!
    ありがとうございました!!

Your answer might help someone💌