Самодельный импорт python gtk приводит к ошибке сегментации

Я пытаюсь заставить свою заваренную версию python работать с заваренным gtk. Однако я получаю эту ошибку. Я не могу найти проблему, которая вызывает эту проблему. Эта ошибка возникает после установки pygtk.

$ python
Python 2.7.5 
[GCC 4.2.1 Compatible Apple LLVM 4.2 (clang-425.0.28)] on darwin
Type "help", "copyright", "credits" or "license" for more information.

>>> import gtk
/usr/local/Cellar/python/2.7.5/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gtk-2.0/gio/__init__.py:23: Warning: g_str_has_prefix: assertion `str != NULL' failed
    from _gio import *
Segmentation fault: 11

Установлены версии пакетов gtk и pygtk: gtk+-2.24.20 и pygtk: stable 2.24.0.

Мой список установленных пакетов brew:

atk         gdk-pixbuf  jpeg        pango       pygobject
cairo       gettext     libffi      pcre        pygtk
cmake       glib        libpng      pixman      python
fontconfig  gtk+        libtiff     pkg-config  readline
freetype    harfbuzz    nginx       postgresql  sqlite
gdbm        icu4c       ossp-uuid   py2cairo    xz

person nal21    schedule 07.09.2013    source источник


Ответы (2)


Та же проблема для меня, когда я пытаюсь запустить приложение zim note. В OS X есть собственный python, который связан с /usr/bin/python, и ссылка на собственный скомпилированный python в /usr/local/bin/python.

С питоном Apple я могу запустить приложение zim, но оно вылетает при двойном щелчке (касание двумя пальцами).

С питоном от Brew я вообще не могу запустить Zim. Shell показывает мне ту же ошибку:

python /Users/md760/my_apps/zim-0.62/zim.py
/usr/local/Cellar/python/2.7.8_2/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/gtk-2.0/gio/__init__.py:23: Warning: g_str_has_prefix: assertion `str != NULL' failed
  from _gio import *
Segmentation fault: 11

Так что, по крайней мере, создание билета на варку на гитхабе — хорошая идея.

person ipeacocks    schedule 01.11.2014

Кажется, что эта ошибка может появиться, если вы установили несколько библиотек gtk (pygtk). Например, один из репозитория варева, а другой из любого dmg или что-то в этом роде.

Так что могу посоветовать удалить один из них, например non-brew версию:

# rm -rf /opt/gtk

А затем попробуйте импортировать gtk в python

person ipeacocks    schedule 11.02.2015