ПИШУ ПРО ВСЕ
Показаны сообщения с ярлыком wxpython. Показать все сообщения
Показаны сообщения с ярлыком wxpython. Показать все сообщения

6 сент. 2009 г.

Импорт wxPython в программах

В большинстве програм на питоне импортируют wxPython простой командой:

import wx

Такое импортирование имеет некоторые неприятные последствия. Представим что в системе установлены две версии библиотеки wxPython например 2.6 и 2.8, по умолчанию выбрана 2.6, а для программытребуется версия 2.8. При простом импорте будет загружена версия 2.6 и программа вылетит с ошибкой ... (кстати по умолчанию в ubuntu хоть и выбрана версия 2.8 но из-за небольшого недочета грузится 2.6. Смотрите прошлую статью Выбор версии wxPython по умолчанию в Ubuntu Jaunty ).

Правильнее будет импортировать wxPython с указанием минимальной требуемой версии, дабы не смущать пользователя (а то он не будет разбираться, а просто удалит вашу програму и найдет другую такую же):

import wxversion
wxversion.ensureMinimal('2.8')
import wx

Вот теперь при иморте будет загружена требуемая версия! А если таковой нет то будет выведено окно пользователю с предложением загрузить с сайта требуемую версию.

31 авг. 2009 г.

Выбор версии wxPython по умолчанию в Ubuntu Jaunty

В Jaunty по умолчанию импортируется версия wxPython 2.6:
  >>> import wx
>>> wx.VERSION
(2, 6, 3, 2, '')


При попытке выбрать версию по умолчанию:

$ sudo update-alternatives --config wx2.5.pth

Есть 2 альтернатив, которые предоставляют `wx2.5.pth'.

Выбор Альтернатива
-----------------------------------------------
1 /usr/lib/wx/python/wx2.6.pth
*+ 2 /usr/lib/wx/python2.5/wx2.8.pth

Нажмите enter, чтобы сохранить значение по умолчанию[*], или введите выбранное число: 2
Используется `/usr/lib/wx/python2.5/wx2.8.pth' для предоставления `wx2.5.pth'.

оказывается что версия по умолчанию уже 2.8 ...

Проблема кроется в том что ссылки wx-2.6-gtk2-unicode.pth и
wx-2.8-gtk2-unicode.pth присутствуют в путях для пакетов /usr/lib/python2.*/dist-packages. На самом деле там должна быть только ссылка wx2.5.pth ссылающаяся на конфигурационную ссылку в /etc/alternatives...

Достаточно удалить лишние ссылки wx-2.6-gtk2-unicode.pth и
wx-2.8-gtk2-unicode.pth и все встает на свои места.