LoginSignup
3
2

More than 3 years have passed since last update.

Gtk-ERROR **: 04:28:17.451: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported のエラー

Last updated at Posted at 2020-10-25

Gtk-ERROR **: 04:28:17.451: GTK+ 2.x symbols detected. Using GTK+ 2.x and GTK+ 3 in the same process is not supported

最近新しくXavier NXの環境を整えていて、昔に使っていたプログラムを実行しようとしたらこんなエラーが発生したので対処した。
こういったエラーは普段だとひたすらぐぐりながら解決していくのだけども、たまにはまとめながら解決していきたい(また同じようなエラーに遭遇した時の方へのメモとしても)

原因としてはGTX +2系と3系のそれぞれの環境に依存したライブラリを同時に使うことが原因らしい。
ではどのライブラリが競合してしまっているのか調べる必要がある。

によるとmatplotlibcとopencvの競合の可能性があるかもとのこと。
試しに以下のコードを実行する。

import cv2
import matplotlib.pyplot as plt

cv2.namedWindow("test")

ビンゴ。さっきと同じエラーが確認できた。

image.png

matplotlibのフレーム設定ファイルを編集することで使用するGTXのバージョンを指定してあげる。
matplotlibの編集すべきファイルは以下のプログラムを実行することでわかる。

python3 

import matplotlib

print (matplotlib.matplotlib_fname())#/usr/bin/python3/~~(省略)が出力される

ファイルの40行目くらいのところのコメントアウトを外し、tkAggと指定する。
image.png

これで再度、検証に使ったプログラムを実行する。
すると以下のようなエラーが発生する。

image.png

どうやら今回解決しようとした部分は無事解決することができたっぽい。
あとはこのエラーを解決するだけ。
以下のコードでライブラリをインストールする。

sudo apt-get install tk-dev

再度実行すると、違うエラーが発生した。

image.png

今度こそはと以下をインストールする

sudo apt-get install libcanberra-gtk-module

検証プログラムを実行すると問題なく実行することができた。
これで問題なくプログラムが動くことを確認できた。

最後に

エラーを解決していく過程を記事にまとめていくことで手順を振り返ることができてわかりやすくいいと思いました。

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2